THE NATIONWhere the magic Happens

Welcome everyone! The Nation where the magic happens. It is our best template and also we hope your best one!.

FAQFrequently asked questions

Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.

Your Question Now Liste Here? Please Leave a Message!

FFun Facts

3210

New clients to family

CWho We Work With

AAbout the nation

We’re The Nation Agency, a small design agency based in United States. We’ve been crafting beautiful websites, launching stunning brands and making clients happy for years.

HHandpicked & Handmade

We opened in 1996, selling a unique collection of bespoke pieces. As a Seattle-based boutique we incorporate the culture and style of the city into our mix and attitude. Over the past decade our selection has evolved to become a well-edited assortment of contemporary designers and independent labels from the U.S. and abroad.

PPersonal Details

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare sem sed quam tempus aliquet vitae eget dolor. Proin eu ultrices libero. Curabitur vulputate vestibulum elementum. Suspendisse id neque a nibh mollis blandit. Quisque varius eros ac purus dignissim.

  • Birthday

    : 21-02-1990

PPricing Tables

We’re The Nation Agency, a small design agency based in United States. We’ve been crafting beautiful websites, launching stunning brands and making clients happy for years.

$ 25.90

Beginner

  • 10 Domain License

SOur Services

We’re The Nation Agency, a small design agency based in United States. We’ve been crafting beautiful websites, launching stunning brands and making clients happy for years.

01

Web Design

Mauris id viverra augue, eu porttitor diam. Praesent faucibus est a interdum elementum. Nam varius at ipsum id dignissim

TOur Team

We’re The Nation Agency, a small design agency based in United States. We’ve been crafting beautiful websites, launching stunning brands and making clients happy for years.

Michael Roof

Co_founder & Designer

We’ll etch your brand onto tangible objects: business cards, ads, stickers, brochures, you name it. You won’t see business cards, ads, stickers, brochures anything until we’re done drooling the result.

Michael Roof

Co_founder & Designer

Amanda Fox

Yahoo.com

Etiam sit amet fringilla lacus. Pellentesque suscipit ante at ullamcorper pulvinar neque porttitor. Integer lectus. Praesent sed nisi eleifend, fermentum orciamet, iaculis libero.

Etiam sit amet fringilla lacus. Pellentesque suscipit ante at ullamcorper pulvinar neque porttitor. Integer lectus. Praesent sed nisi eleifend, fermentum orciamet, iaculis libero.

S Slider Featured Items


W What We are Good At

Print

We have a unique approach to our work, founded on planning and insight development. We take time out to understand the brand, the business objectives and, most importantly, the customer before making recommendations for how we will execute on our strategy.

W What We are Good At

Print

We have a unique approach to our work, founded on planning and insight development. We take time out to understand the brand, the business objectives and, most importantly, the customer before making recommendations for how we will execute on our strategy.

Our studio

CCompany Up's & Down's

  • Started The Nation Agency in 1999

    Posted:

    Etiam sit amet fringilla lacus. Nam dictum sem, eu aliquam. Maecenas volutpat, diam enim sagittis quam, id porta quam. d id fermentum nibh volutpat, accumsan purus. Etiam sit amet fringilla lacus.

Revolution Slider Error: Slider with alias not found.
Maybe you mean: 'Business_Style_v1' or 'Business_Style_v11' or 'Business_Style_v12' or 'Default_Slider' or 'Ken_Burns_Slider' or 'Photography_Style_v1'

U UI Design

New revolution for one page and multi page templates

Button Title

 

Ransomware attack posing as Adobe software update

Blog, Blog Slider, MightySlider, Uncategorized / nielsnadmin

The U.S. government has issued a warning about a new ransomware attack that spread through Russia and Ukraine and into other countries around the world.

Cybersecurity experts said the ransomware — which posed as an Adobe update before locking down computers and demanding money for people to get their files back — targeted Russian media companies and Ukrainian transportation systems. It has also been detected in other countries including the U.S., Germany and Japan.

The U.S. Computer Emergency Readiness Team said late Tuesday it “has received multiple reports of ransomware infections … in many countries around the world.”

Dubbed “Bad Rabbit,” the virus is the latest example of cybercriminals using ransomware to try to extort money from victims across the globe. Two major international attacks earlier this year — NotPetya and Wannacry — caused widespread disruption affecting businesses, government institutions and hospitals.

Related: Why ransomware attacks keep happening

When Bad Rabbit infects a computer, it seizes files and demands a ransom. Experts and government agencies advise victims not to pay up, warning that there’s no guarantee they will get their files back.

On Tuesday, the virus attacked Russian media groups Interfax and Fontanka, and transportation targets in Ukraine including Odessa’s airport, Kiev’s subway and the country’s Ministry of Infrastructure of Ukraine, according to Russian cybersecurity firm Group-IB. Interfax confirmed its servers had gone down due to a cyberattack.

Most of the victims were located in Russia, but attacks were also observed in Ukraine, Turkey, and Germany. Cybersecurity firm ESET also identified cases of Bad Rabbit in Japan and Bulgaria. Another company, Avast, says the ransomware has been detected in the U.S., South Korea and Poland.

Related: What is ransomware?

Ties to previous attack

The number of victims appeared to be significantly smaller than the NotPetya attack, which struck Ukraine and spread to other countries in June, doing hundreds of millions of dollars of damage to some major companies.

Experts said there were clear links between the two viruses.

Vyacheslav Zakorzhevsky, head of the anti-malware research team at Russian cybersecurity firm Kaspersky Lab, said the company’s investigation shows the Bad Rabbit attack targeted corporate networks using similar methods as NotPetya.

How to protect yourself from hackers

Costin Raiu, director of the Global Research and Analysis Team at Kaspersky Lab, said in a message the Bad Rabbit attack was launched through “an elaborate network of hacked websites,” with a link to NotPetya.

Group-IB also identified similarities between the NotPetya code and that of Bad Rabbit.

Related: Why ransomware costs small businesses big money

Virus used popular malware trick

The Bad Rabbit ransomware infiltrated computers by posing as an Adobe Flash installer on compromised news and media websites. It serves as a reminder that people should never download apps or software from pop-up advertisements or websites that don’t belong to the software company.

ESET says once the ransomware infected a machine, it scanned the network for shared folders with common names and attempted to steal and exploit user credentials to get on other computers.

Researchers say Bad Rabbit doesn’t use EternalBlue, the Windows exploit that was leaked in a batch of hacking tools believed to belong to the U.S. National Security Agency. The NotPetya and WannaCry ransomware attacks did use EternalBlue.

Related: Hackers infiltrate free PC cleaning software

It’s unclear who’s behind Bad Rabbit, but the attackers appear to be “Game of Thrones” fans. The ransomware code contains references to characters from the popular book and TV series like Grey Worm and Daenerys’ dragons.

Many anti-virus software detects Bad Rabbit, including Windows Defender. A researcher from Cybereason discovered a “vaccine” that the company said can protect machines from infection.

According to malware researcher James Emery-Callcott, the ransomware campaign is slowly dying down.

“As far as I can see, the attacker’s server is no longer live and most of the infected sites hosting the script that gives the Flash update prompt” have fixed the issue, he said. “Fake Flash updates are an incredibly popular method of distributing malware these days. Hopefully people will start to realize that when you get an unsolicited Flash update, it’s generally going to be bad.”

Hackers shut down plant by targeting its safety system

Blog, Blog Slider, MightySlider, Uncategorized / hackers, safety, security / nielsnadmin

Hackers have already attacked critical infrastructure, but now they’re launching campaigns that could have dire consequences. FireEye reportedthat a plant of an unmentioned nature and location (other firms believe it’s in the Middle East) was forced to shut down after a hack targeted its industrial safety system — it’s the first known instance of a breach like this taking place. While the digital assault was clearly serious in and of itself, there are hints that it could have been much worse.

The malware, nicknamed Triton, hijacked a workstation using Schneider Electric’s Triconex safety technology (typically used in power plants). The culprits hoped to modify controllers that could pinpoint safety problems, but some of those controllers entered a failsafe state in response and shut down the plant, leading operators to conduct the investigation that caught the hostile code. Triton was otherwise fairly sophisticated. It would try to recover failed controllers to avoid raising alerts, and would even overwrite its own programs with junk data if it couldn’t salvage a controller inside of a given time window.

The hack wasn’t made possible by a flaw in Triconex itself, FireEye noted. Instead, it appeared to be an “isolated incident.”

While it’s not certain who’s responsible, FireEye said the hack was “consistent” with a “nation state” readying an attack. And that’s concerning, especially if the perpetrators learn from their mistakes. While shutting down a power plant would be bad enough, it’d be worse if the malware could fool a safety system into allowing attacks that would damage the facility and lead to a long-term shutdown or an environmental disaster. In short, companies and governments alike may have no choice but to prioritize defending critical infrastructure if they want to avoid crippling attacks.

Firefox faces backlash for auto-installing ‘Mr. Robot’ add-on

Uncategorized / internet, net / nielsnadmin

A curious add-on called “Looking Glass” started popping up on Firefox for a number of users this past week — even if they didn’t give the browser permission to install it. Due to its nebulous nature and creepy description that only said “MY REALITY IS JUST DIFFERENT FROM YOURS,” people took to social networks to ask other users and air their concerns. Turns out Looking Glass isn’t spamware, malware or any of the sort: it’s a promotional campaign for Mr. Robota TV series about the life of a cybersecurity-engineer-slash-hacker.

A screenshot of Looking Glass version 1.0.3 captured by TechCrunch shows that the extension’s profile barely had anything in it. Version 1.0.4, which one of Engadget’s editors found in his browser, was more forthcoming and admitted that it’s a collaboration between Mr. Robot and Mozilla.

Based on the details unearthed by affected users, the add-on was developed by Mozilla’s Shield Studies program, a platform available on all Firefox channels that gives you a way to test features before they’re released. Some Shield studies ask for your permission to opt in, others automatically make their way to your browser and require you to actively opt out. Problem is, some weren’t even aware that they’re part of the Shield program, so they had no idea where the extension could’ve come from.

Mozilla is now facing backlash for installing the add-on without people’s consent, especially since it always stresses how important users’ privacy is to the organization. In fact, in the page explaining what Looking Glass is, Mozilla wrote:

“The Mr. Robot series centers around the theme of online privacy and security. One of the 10 guiding principles of Mozilla’s mission is that individuals’ security and privacy on the internet are fundamental and must not be treated as optional. The more people know about what information they are sharing online, the more they can protect their privacy.”

Despite the troubling way the extension was installed, Mozilla said it doesn’t do anything to your system until you opt into the Alternate Reality Game, the immersive experience the organization designed to take fans into the Mr. Robot universe. Those who couldn’t care less about the show can kill the extension by typing about:addons in their address bar and removing Looking Glass.

Update: A Mozilla rep reached out and told Engadget:

“Our goal with the custom experience we created with Mr. Robot was to engage our users in a fun and unique way. Real engagement also means listening to feedback. And so while the web extension/add-on that was sent out to Firefox users never collected any data, and had to be explicitly enabled by users playing the game before it would affect any web content, we heard from some of our users that the experience we created caused confusion.

As a result we will be moving the Looking Glass Add-on to our Add-On store within the next 24 hours so Mr. Robot fans can continue to solve the puzzle and the source can be viewed in a public repository.”

Powering social feeds and timelines with Elasticsearch

Blog, Blog Slider, MightySlider, Uncategorized / elastisearch, search, seo / nielsnadmin

Evolving from MongoDB and Redis to Elasticsearch, Campus Discounts’ founder and CTO Don Omondi talks about how and why the company made the switch to power their user recommendation feeds.

Campus Discounts is a social network where students find and recommend discounts posted by businesses near campus. We have a worldwide list of campuses with their geographic location. Businesses create pages and post discounts tagging campuses near them. Students can then view their campus page and find discounts nearby.

If students signup (it’s free), they can select product categories of interest and also connect to fellow students through the buddy system. When a student’s friend recommends a discount which falls within the student’s categories of interest, he/she will be notified and see it on their feeds.

Our data is classified into two types. Primary data is our core data that includes users, pages, apps, discounts, countries, recommendations and campuses. It’s stored in a MariaDB RDBMS. Secondary data is derived from actions on primary data such as likes, comments, follows, ratings, reviews, friendships, etc. and are stored in a MongoDB database.

Our MariaDB tables typically look like this:

The recommendations table column “type” can have a value of 1 to represent a discount_recommendation, 2 for a page_recommendation or 3 for an app_recommendation.

When User A recommends a discount (eg. Save Big, 25% Off Mens’ Leather Shoes) it’s saved in the discount_recommendations table and pointers to it are saved in the recommendations table. This will appear in the feeds, for example, “User A recommends Save Big, 25% Off Mens’ Leather Shoes.”

If User B sees this recommendation and shares it, no new entry is made in the discount_recommendations table. Instead, a new entry in the recommendations table is made with the sharer as User B, but with data pointing to the exact recommendation made by User A. So, all comments and likes are tied to the original discount_recommendation.

When building the UI, if the recommendations sharer ID does not match the recommender ID, then the feed item will appear as “User B shared User A’s recommendation Save Big, 25% Off Mens’ Leather Shoes”.

Normalization in RDBMS – The Good

This model highlights the strength of normalization in relational databases. For example, a discount recommendation is joined to a discount, which is joined to a category and page. The latter of which is joined to a country. The same discount recommendation is also joined to a user (recommender), which is joined to a country as well as a campus. A campus is also joined to a country.

This means that a user who has set “Men’s Shoes” as a category of interest could have a feed entry such as:

  • discount recommendations for “men’s shoes” – a category join
  • by my friends – a join on user_id
  • in my campus – a join on campus
  • by businesses – a join on page
  • in my country – a join on country
  • near my campus – a join by location.

That’s 6 joins and it easily could be more.

Normalization in RDBMS – The Bad

RDBMS joins are one of the biggest performance killers at scale especially when multiple joins are used. In our case, the user feed contains 3 types of recommendations arranged in a collective, time-based chronological order. Queries span across 3 different tables and thus are fetched one-by-one.

A typical feed fetch of this nature would look like this:

  1. Find my friend ids (1 query)
  2. Find my interests i.e. category ids (1 query)
  3. Find my latest 20 friend recommendations of interest (1 query)
  4. Populate feed by fetching each of the 20 recommendations one by one i.e. (20 queries of 6 joins each!)

Almost all of our data is persisted asynchronously using RabbitMQ, so users are oblivious to whether it took 1 second, 15 seconds, or 5 minutes to perform tasks. Hence, writing to the DB was not the issue, just reads were.

MongoDB – Redis Hybrid

We initially tried to solve this problem by caching, so we created a temporary store for each user’s timeline and feed in MongoDB and kept this store in RAM for fast retrieval.

We have two collections: user_feeds and user_timelines. Each collection stores one document per user with the _id set to the users’ respective ids. When a user makes a recommendation, that data will be cached as an embedded document in a user’s timeline.

Simultaneously, we established feeds for those friends whose interests align with the discount category of this new recommendation. Their MongoDB documents are updated with new entries as embedded documents. This is a Push-on-Change strategy where each document contains a cache of the recommendations table and is restricted to a maximum of 200 embedded documents.

Still, there were expensive queries on the discount_recommendationspage_recommendations, and app_recommendations tables. Ideally, each query would be embedded along with the recommendations table data, but this would lead to unsustainable data duplication.

Instead, we cached each result of the 6-join query in Redis setting the key to a hash of the respective ID. A user_feed document looked like this:

{
   "_id": 1,
   "recommendations": {
     "0": {
       "_id": 1,
       "user_id": 1,
       "type": 1,
      "recommendation_id": 1
     },
     "1": {
       "_id": 3,
       "user_id": 78,
       "type": 2,
       "recommendation_id": 3
     },
     "2": {
       "_id": 45,
       "user_id": 2,
       "type": 1,
       "recommendation_id": 6
     },
     "3": {
       "_id": 564,
       "user_id": 7,
       "type": 3,
       "recommendation_id": 9
     }
   }
}

While a discount_recommendation key-value in Redis looked like this:

{
 "data": {
   "discount_recommendation_id": 1,
   "discount": {
     "id": 1,
     "title": "Save Big, 25% Off Mens’ Leather Shoes",
     "category": {
       "id": 1,
       "name": "Men’s Shoes"
     },
     "page": {
       "id": 1,
       "name": "Safari Shoes LTD.",
       "country": {
         "id": 1,
         "name": "Kenya"
       },
       "location": {
         "latitude": 12.121212,
         "longitude": 12.121212
       }
      }
    },
   "recommended_by": {
     "id": 1,
     "username": "The_Don_Himself",
     "country": {
       "id": 1,
       "name": "Kenya"
   },
   "campus": {
     "id": 1,
     "name": "University of Nairobi, Chiromo Campus",
     "country": {
       "id": 1,
       "name": "Kenya"
     },
     "location": {
       "latitude": 12.121212,
       "longitude": 12.121212
     }
   }
 },
 "recommened_on": {
   "date": "2015-05-07 10:48:23.000000",
   "timezone_type": 3,
   "timezone": "UTC"
  }
 }
}

This approach performed really well. A MongoDB document was fetched and the individual recommendations fetched over a loop from Redis. Eventually, a user got his feed in less than 30ms for 20 items at a time after 21 queries.

But if it was all rosy, why did we abandon this approach?

The disadvantages:

  1. A user’s friends could possibly fill his 200 limit feed cache with only one type of recommendation making filtering for another type yield nothing.
  2. Whenever a user changed his interests by adding or removing a category, or when a user made or removed friends, his existing feed document would have to be destroyed and regenerated.
  3. The biggest disadvantage was that a user could not filter his feed on the fly (e.g. a user viewing his feed could not just select one category for example phones and just get friends recommendations for phones alone). The only way to do so was to change profile settings which leads to disadvantage #2.

Elasticsearch

Therefore, a more flexible approach was required. We needed a model that allowed us to fall in line with the reactive requirements of modern apps. Using Elasticsearch, we changed our feeds generation strategy from Push-on-Change to Pull-on-Demand.

So how does Elasticsearch make things more flexible?

With Elasticsearch, a single query can easily and quickly fetch different documents across the entire dataset. Elasticsearch also has a feature called Types that are a very interesting but a sometimes misused feature that allows you to save several types of data in the same index. Being in the same index means a query across several types would normally perform better than a query across a similar dataset across several indices – unless the index holding the multiple types is really large.

The performance boost is nice, but the best part of types is that they represent a class of similar documents with similar mappings. So we’ve created a recommendations_type_index and saved our data as discount_recommendations_typepage_recommendations_type and app_recommendations_type.

Elasticsearch scores use index-wide statistics and since our recommendations have similar fields like datetimetotallikestotalcommentstotalshares and so forth, we can now use Elasticsearch Types to provide a feeds display algorithm other than the time-based chronological method of our previous MongoDB – Redis setup.

The main advantages over previous setup are:

  1. This reduced our queries from 23 to just 3.
  2. No need to cache a list of 200 recommendations per user.
  3. We are now able to query recommendations by deeply nested fields on the fly allowing us to introduce new, real-time, filter-like features to our users.

The main disadvantages over previous setup are:

  1. Index size. We de-normalized our data to fit it in an all-in-one document. This increased query performance, but led to a much larger size on disk due to data duplication.
  2. Tedious updates. Changes required a scan and update across all documents that have that data present.
  3. Varying query times. MongoDB – Redis setup has pre-cached feeds that gave a more predictable standard deviation of feed generation times, but with Elasticsearch, a feed’s query time now depends on the number of filters used.

Conclusion

So there you have it, a fully functional and elastic user feed system. I hope this exposed some interesting uses of various databases that we use and that it can inspire you to use it as it’s meant to be – a tool to help you accomplish a task.

Neurons Interactive Sequence

Blog, Blog Slider / animation, interactive, motion, neuron, neurons, science / nielsnadmin

The Best Mockup & Wireframing Design Tools & Apps for UI/UX Designers in 2017

MightySlider / nielsnadmin

Prototyping/wireframing tools are the best communication method between interaction designers, project manager, and website developers. It’s a key step of web or mobile app development process. While in principle, the design of prototypes must be a product of interaction designers, and the user-centered concept shall run through the whole product design progress. The professional perspective and rich user experience of interaction designer will directly influence the usability of the product.

Desktop-based Prototyping Tools

prototyping tools for PC

1. Axure RP (Mac & Win) | ($495/user)

Axure RP is a desktop application that allows designers to create, test, and share interactive prototypes. Been called as the most comprehensive (in terms of functionality) prototyping tools, it’s an ideal desktop software for both static, low-fidelity prototypes and more sophisticated, interactive prototypes. As an extremely professional UX tool, Axure requires a steep learning curve.

2. Mockplus (Mac & Win) | ($129/year)

Mockplus is an all-inclusive rapid prototyping tool supports for the mainstream platforms of PC, website, and mobile device. The packaged interactions components and creative preview method allow designers to design and preview within minutes. It is a solid prototyping app for professional UI/UX designers who want to produce high-quality prototypes but without too much longer learning curve. In 2017, the Mockplus team released the Mockplus 3.2 version, which added powerful features including:

UI Flow Design Mode – Instant switch between Prototype and UI Flow design modes; Display the UI flow of all or some certain pages; Intelligent connections between pages which can be adjust manually; Display important markups of pages; Export UI Flow at once.

Repeater – Convert any component easily into a Repeater. Drag the border of a Repeater to create repeated elements. Your adjustments made on one component will be applied to all.

Demo Projects and Templates – Demo Projects: Well-structured demos for you to make reference. Templates: Various built-in templates help you to build your prototypes on them, easy and fast.

Sketch Import – Publish selected Sketch Artboards as a Team Project in Mockplus. Insert Sketch Artboards into a Mockplus Team Project.

Other features like Mind Map Design Mode will be presented in the versions after Mockplus 3.2.

3. Justinmind (Mac & WIn) | ($228/year)

Justinmind is a flexible prototyping tool for web and mobile app prototypes and high-fidelity website wireframes. The rich gestures in Justinmind allow designers to better build gesture interaction mobile apps. Justinmind also requires a deep learning curve, such as value expression.

4. Balsamiq (Win) | ($89/user)

Balsamiq Mockups is a rapid wireframing tool that helps you work faster & smarter. It reproduces the experience of sketching on a whiteboard, but using a computer. By comparison, Balsamiq is more focus on static and low-fidelity prototypes.

5. OmniGraffle (Mac) |($199.99)

OmniGraffle is a powerful design tool, it has extensive options for objects, canvases, templates, inspectors, and stencils to help designers set out to do something well, quickly. It has won the Apple Design Award in 2002.

Some other mockup tools:

Origami — A free tool for designing modern user interfaces (Mac) |

Adobe Experience Design — The first all-in-one tool for UX designers (Mac)

Prott— A new mobile app prototyping tool built for design teams (Mac) | ($421/year)

Principle — An animated design tool for interactive prototypes (Mac) | ($129/year)

Prototyping tools

So, the problem of how to complete a good prototype design that’s depending on how you choose prototyping/wireframing tools. Below are the most popular mockup & prototyping/wireframing tools & appsbased on the website, desktop, and mobile device.

Web-based Prototyping Tools

prototyping tools for web

1.InVision | ($25/month)

As a web-based collaborative program, InVision is powerful at clickable & interactive prototypes, real-time design collaboration & share. InVison is an ideal choice for high fidelity design which is always impressive. The nice features such as Invision + Sketch, Invision + Adobe could be a great helpful for designers who pursue the high-end product.

2. UXpin | ($44.08 per user/year, starting from 4 users)

UXpin puts everything for designers in a UX design platform, also, it supports to upload file seamlessly on Sketch and Photoshop. Responsive prototypes and wireframes created by UXpin can run on different devices and resolutions. In addition, this software also provides version control and iterative function, you can easily share and preview prototypes by the intuitive and real-time collaboration.

3. Marvel | ($168 per user/year)

Marvel is also a web-based prototyping tool with good real-time collaboration. You can simply import mockup images from Sketch or Photoshop to link into clickable interactive prototypes for different devices. Just simple drag and link, you can bring your idea to life without any code experience.

4. FluidUI | ($99/year)

With built-in iOS, Material Design and Wireframe libraries containing over 2000 customizable widgets and icons, you can design and share a wireframe, mockup or prototype for any device or platform in minutes. FluidUI also features real-time collaboration for teams, video hangouts for user testing, on-device testing and interactive previews with chat/comments to share and iterate your designs with your team.

5. Proto.io

Proto.io is a very strong web app with many functions. Under the web-based environment, it supports rich gestures and touch style, such as slide, touch, zoom, press and other mainstream actions. With it, developers can create interactive prototypes for the iOS, Android and other mobile internet devices, and get feedback from users.

Some other web-based prototyping tools:

Pidoco — Online wireframe and UX prototyping tool | ($660/year for premium)

Mockingbird — Wireframes on the fly | ($40/month for 25 projects)

Mockflow — Great design tools and collaboration services for designers | ($148/year)

Moqups — Mockup, wireframe & UI prototyping tool for creating hi-fi wireframes | ($228/year for Pro)

Gliffy — Mock up web pages quickly & easily with wireframes | ($480/year for 10 projects)

Wireframe.cc — Minimal wireframing tool | ($390/year)

Framer — Design tool for code needed | ($159/year)

Mobile-based Prototyping Tools

prototyping tools for mobile

1. POP(Prototyping on Paper) (iOS & Android) | ($168/year)

Joined Marvel in the end of 2016.

2. Tapcase (iOS) |

TapCase lets designers create app prototypes from hand-drawn sketches and screen mockups. It’s quite fast and easy to create interactive elements by adding hotspots, linking target screens, and picking transition animations.

3. Marvelapp (iOS & Android) | ($168/year)

Marvelapp is a free prototyping app for mobile app, the whole design progress completed on mobile devices. Like POP and Tapcase, easily upload the prepared sketches or screen mockups, and add inbuilt transitions & gestures to make the pen & paper ideas to live.

Some other mobile-based prototyping tools:

Mockplus app — Easily & quickly preview prototypes on mobile devices by scanning QR code or input the view code. (iOS & Android)

JustinMindPrototyper — The prototype viewer for Justinmind prototypes (iOS & Android)

Mockup Builder — Super-easy prototyping and mockups (iOS & Android)

Live Wires — To quick wireframe & prototype for iPhone and iPad app (iOS)

Appcooker — Prototyping studio for iPhone & iPad (iOS)

UX vs UI vs IA vs IxD : 4 Confusing Digital Design Terms Defined

Blog, MightySlider, Uncategorized / nielsnadmin

Once upon a time, if you said the word “design”, the odds were overwhelmingly likely you were talking about graphic design. But nowadays, the digital world is becoming increasingly more complicated and a lot of new job positions appearing, which lead to confusion for people outside or new to the design industry. Here’s a quick overview on the four different primary forms of design to help you understand what they mean.

UX Design (User Experience Design)

image by: Netizen Experience

As is found on Wikipedia “User experience design (UXD, UED or XD) is the process of enhancing user satisfaction by improving the usability, accessibility, and pleasure provided in the interaction between the user and the product. User experience design encompasses traditional human–computer interaction (HCI) design, and extends it by addressing all aspects of a product or service as perceived by users.

UX designer is the person in charge with creating the products “logic” via wireframes and prototypes via software like Axure, JustInMind, Mockplus etc. Communication is one of the critical skills of the UX designers. They also conduct research, competitive analysis at the beginning as well as usability testing and A/B testing after the project has launched. UX designers are primarily concerned with how the product feels. If your website or app is difficult to use, users will probably be frustrated and move on to something else. If they have a great experience, they’re more likely to come back and tell their friends how great your app is.

Deliverables: Wireframes, Prototypes, Storyboards, Sitemap, Written specifications.

Tools of the trade: Sketch, Axure, Mockplus, Fireworks, UXPin

UI Design (User Interface Design)

image by: julessdesign

Author and founder of Adaptive Path — a user experience consultancy, Jesse James Garrett, defines interface design as being all about selecting the right interface elements — like text, buttons, text fields, color coded lists, etc — for the task the user is trying to accomplish and arranging them on the screen in a way that will be readily understood and easily used. The goal is make the user’s interaction as efficient and simple as possible.

Interface elements include but are not limited to:

Input Controls: buttons, text fields, checkboxes, radio buttons, dropdown lists, list boxes, toggles, date field

Navigational Components: breadcrumb, slider, search field, pagination, slider, tags, icons

Informational Components: tooltips, icons, progress bar, notifications, message boxes, modal windows

Containers: accordion

Tools of the trade: Photoshop, Sketch, Illustrator, Fireworks, InVision

IA (Information Architecture)

imgae by: ga-core.s3.amazonaws.com

Information architecture (IA) involves the way a website/app is structured and how the content is organized. The goal is to help users find information and complete tasks. “In other words, information architecture is the creation of a structure for a website, application, or other project, that allows us to understand where we are as users, and where the information we want is in relation to our position. Information architecture results in the creation of site maps, hierarchies, categorizations, navigation, and metadata. When a content strategist begins separating content and dividing it into categories, she is practicing information architecture. When a designer sketches a top level menu to help users understand where they are on a site, he is also practicing information architecture”- from uxbooth.com

Some qualifications for IA:

1. Experience documenting complex digital properties (websites, mobile apps, products, and system services)

2. Extremely detailed documentation, ability to find discrepancies, cracks, etc. amongst complex site documentation

3. Proficient with Axure, Omnigraffle, Keynote, as well as Visio and any other programs directly related to IA

4. Analyze available information and assets to assess optimal IA approach

Strong communication skills (written and verbal), and an ability to present effectively to agency and client staff

5. Needs to be analytical, hardworking, creative, curious and interested in people and ideas

6. Must be a confident and motivated self starter

IxD (Interaction Design)

Definition of IxD: “Interaction Design (IxD) defines the structure and behavior of interactive systems. Interaction Designers strive to create meaningful relationships between people and the products and services that they use, from computers to mobile devices to appliances and beyond. Our practices are evolving with the world.”- from ixda.org

IxD designer is the people in charge of the websites/apps moving elements & interactions. If you’ve seen a cool animation on a website or app, that made you say wow or that is really cool, that’s the stuff motion designers do.

Job description of IxD designer at Google:

In an Interaction Designer role, you’ll tackle complex tasks and transform them into intuitive, accessible and easy-to-use designs for billions of people around the world-from the first-time user to the sophisticated expert. Achieving this goal requires collaboration with teams of Designers, Researchers, Engineers and Product Managers throughout the design process-from creating user flows and wireframes to building user interface mockups and prototypes. At each stage, you will anticipate what our users need, advocate for them and ensure that the final product surprises and delights them.

So in an oversimplified and user-friendly nutshell, UX Design is how a user feels about the apps, UI Design is what, where and how elements work on the apps, Information Architecture is how a app is organized, and Interaction Design is how the user and app act and react to each other.

Last but not least, the boundaries between each of these various design roles are very fluid. The IxD is quite similar to UX design in it’s approach as it’s part of the UX design cycle, so in some cases these roles may have a lot of overlap.

you may also interested in:

UX Is Not UI: What Is the Difference between UX and UI Design?

Blog, MightySlider, Uncategorized / nielsnadmin

UX has been a buzzword that bounces around the design world, endorsed and adopted by designers anddevelopers. In many cases, highly respected developers who claim to be talking about ”UX” in a product demonstration are in fact showing a large number of UI features. I doubt much that the vague definition may account for this kind of misunderstanding. We’ve heard of UI (User interface) and UX (User Experience). When you build an App or a website with Mockplus, we will talk to you about both. If UX is not UI, What is the exact difference?

The Definition of UX

user experience design

UX is not UI, then what is the definition of UX exactly? Here I am not going to shoot the cliche but to provide you with a intuitive introduction which will help you to get a quick understanding of why UX is not UI. Good UX designfocuses on the interactive side of the product, how it behaves, such as a box sliding out, and how people might interact with it, such as where they will click first. UX handles the architecture of the content and the site map.

If you take a deeper look into the definition which is now gradually formed in your mind, you might have noticed the simplest difference between UX and UI. We all enjoy using UX as a prevailing buzzword, but if you are talking about how the page is physically laid out, where things should go, what colors to use or something like that, let’s accept the fact that they are UI things and UX is not UI.

The Definition of UI

ux vs ui

To get a better understanding of why UX is not UI, UI is a small part of UX to some extent. However, UI design focuses more on colors and typography. Let’s pick a textbook example. If there need to be a button, UI designers will concentrate on the visual part. Namely, how the button will look like and what color to use, whileUX designers are trying to figure out where to put it with the intention to find what users want and the resolutions to those pain points. So next time if you hear something like “building great user experiences with Silverlight 4” or“Mastering HTML5, CSS3 and Jquery to implement stunning user experience”, you can just laugh it off or boo them if you want to.

The Vomit-flavoured Lollipop Problem

There happens to be an interesting argument attempting to trivialize the difference between UX and UI: If you are selling shit-flavoured lollipops, will the best experience design in the world save you? My short answer isYES.

ux designer vs ui designer

Here is the long answer. Last year I came across an operating system claiming to be the best OS on the Eastern Hemisphere called Smartisan OS. As might be expected, I bought the phone and found it just a piece of shit. The system crashed whenever I ran more than 3 Apps and the heat of the hardware could burn off my hands. Nevertheless, some user-friendly designs in Smartisan OS did amaze me, such as the contacts searching system and tricks like timed mute options. These details combined to win the company 60 thousand users in the intense mobile market in China.

What if We Just Enjoy Using the Buzzword (Though We Know It’s Inaccurate)

Buzzwords are tempting. We all get the sense of superiority of being professional by using the catching words but sometimes the singing Siren kills. Trivial misunderstanding like this is creating a mess in the employment process. Companies and talents all fuck up before their first meeting with each other. So please, if we want to look like professionals, we firstly need to act like ones- at least use the word right and admit that UX is not UI.

Ransomware attack posing as Adobe software update

Blog, Blog Slider, MightySlider, Uncategorized / nielsnadmin

The U.S. government has issued a warning about a new ransomware attack that spread through Russia and Ukraine and into other countries around the world.

Cybersecurity experts said the ransomware — which posed as an Adobe update before locking down computers and demanding money for people to get their files back — targeted Russian media companies and Ukrainian transportation systems. It has also been detected in other countries including the U.S., Germany and Japan.

The U.S. Computer Emergency Readiness Team said late Tuesday it “has received multiple reports of ransomware infections … in many countries around the world.”

Dubbed “Bad Rabbit,” the virus is the latest example of cybercriminals using ransomware to try to extort money from victims across the globe. Two major international attacks earlier this year — NotPetya and Wannacry — caused widespread disruption affecting businesses, government institutions and hospitals.

Related: Why ransomware attacks keep happening

When Bad Rabbit infects a computer, it seizes files and demands a ransom. Experts and government agencies advise victims not to pay up, warning that there’s no guarantee they will get their files back.

On Tuesday, the virus attacked Russian media groups Interfax and Fontanka, and transportation targets in Ukraine including Odessa’s airport, Kiev’s subway and the country’s Ministry of Infrastructure of Ukraine, according to Russian cybersecurity firm Group-IB. Interfax confirmed its servers had gone down due to a cyberattack.

Most of the victims were located in Russia, but attacks were also observed in Ukraine, Turkey, and Germany. Cybersecurity firm ESET also identified cases of Bad Rabbit in Japan and Bulgaria. Another company, Avast, says the ransomware has been detected in the U.S., South Korea and Poland.

Related: What is ransomware?

Ties to previous attack

The number of victims appeared to be significantly smaller than the NotPetya attack, which struck Ukraine and spread to other countries in June, doing hundreds of millions of dollars of damage to some major companies.

Experts said there were clear links between the two viruses.

Vyacheslav Zakorzhevsky, head of the anti-malware research team at Russian cybersecurity firm Kaspersky Lab, said the company’s investigation shows the Bad Rabbit attack targeted corporate networks using similar methods as NotPetya.

How to protect yourself from hackers

Costin Raiu, director of the Global Research and Analysis Team at Kaspersky Lab, said in a message the Bad Rabbit attack was launched through “an elaborate network of hacked websites,” with a link to NotPetya.

Group-IB also identified similarities between the NotPetya code and that of Bad Rabbit.

Related: Why ransomware costs small businesses big money

Virus used popular malware trick

The Bad Rabbit ransomware infiltrated computers by posing as an Adobe Flash installer on compromised news and media websites. It serves as a reminder that people should never download apps or software from pop-up advertisements or websites that don’t belong to the software company.

ESET says once the ransomware infected a machine, it scanned the network for shared folders with common names and attempted to steal and exploit user credentials to get on other computers.

Researchers say Bad Rabbit doesn’t use EternalBlue, the Windows exploit that was leaked in a batch of hacking tools believed to belong to the U.S. National Security Agency. The NotPetya and WannaCry ransomware attacks did use EternalBlue.

Related: Hackers infiltrate free PC cleaning software

It’s unclear who’s behind Bad Rabbit, but the attackers appear to be “Game of Thrones” fans. The ransomware code contains references to characters from the popular book and TV series like Grey Worm and Daenerys’ dragons.

Many anti-virus software detects Bad Rabbit, including Windows Defender. A researcher from Cybereason discovered a “vaccine” that the company said can protect machines from infection.

According to malware researcher James Emery-Callcott, the ransomware campaign is slowly dying down.

“As far as I can see, the attacker’s server is no longer live and most of the infected sites hosting the script that gives the Flash update prompt” have fixed the issue, he said. “Fake Flash updates are an incredibly popular method of distributing malware these days. Hopefully people will start to realize that when you get an unsolicited Flash update, it’s generally going to be bad.”

Hackers shut down plant by targeting its safety system

Blog, Blog Slider, MightySlider, Uncategorized / hackers, safety, security / nielsnadmin

Hackers have already attacked critical infrastructure, but now they’re launching campaigns that could have dire consequences. FireEye reportedthat a plant of an unmentioned nature and location (other firms believe it’s in the Middle East) was forced to shut down after a hack targeted its industrial safety system — it’s the first known instance of a breach like this taking place. While the digital assault was clearly serious in and of itself, there are hints that it could have been much worse.

The malware, nicknamed Triton, hijacked a workstation using Schneider Electric’s Triconex safety technology (typically used in power plants). The culprits hoped to modify controllers that could pinpoint safety problems, but some of those controllers entered a failsafe state in response and shut down the plant, leading operators to conduct the investigation that caught the hostile code. Triton was otherwise fairly sophisticated. It would try to recover failed controllers to avoid raising alerts, and would even overwrite its own programs with junk data if it couldn’t salvage a controller inside of a given time window.

The hack wasn’t made possible by a flaw in Triconex itself, FireEye noted. Instead, it appeared to be an “isolated incident.”

While it’s not certain who’s responsible, FireEye said the hack was “consistent” with a “nation state” readying an attack. And that’s concerning, especially if the perpetrators learn from their mistakes. While shutting down a power plant would be bad enough, it’d be worse if the malware could fool a safety system into allowing attacks that would damage the facility and lead to a long-term shutdown or an environmental disaster. In short, companies and governments alike may have no choice but to prioritize defending critical infrastructure if they want to avoid crippling attacks.

Firefox faces backlash for auto-installing ‘Mr. Robot’ add-on

Uncategorized / internet, net / nielsnadmin

A curious add-on called “Looking Glass” started popping up on Firefox for a number of users this past week — even if they didn’t give the browser permission to install it. Due to its nebulous nature and creepy description that only said “MY REALITY IS JUST DIFFERENT FROM YOURS,” people took to social networks to ask other users and air their concerns. Turns out Looking Glass isn’t spamware, malware or any of the sort: it’s a promotional campaign for Mr. Robota TV series about the life of a cybersecurity-engineer-slash-hacker.

A screenshot of Looking Glass version 1.0.3 captured by TechCrunch shows that the extension’s profile barely had anything in it. Version 1.0.4, which one of Engadget’s editors found in his browser, was more forthcoming and admitted that it’s a collaboration between Mr. Robot and Mozilla.

Based on the details unearthed by affected users, the add-on was developed by Mozilla’s Shield Studies program, a platform available on all Firefox channels that gives you a way to test features before they’re released. Some Shield studies ask for your permission to opt in, others automatically make their way to your browser and require you to actively opt out. Problem is, some weren’t even aware that they’re part of the Shield program, so they had no idea where the extension could’ve come from.

Mozilla is now facing backlash for installing the add-on without people’s consent, especially since it always stresses how important users’ privacy is to the organization. In fact, in the page explaining what Looking Glass is, Mozilla wrote:

“The Mr. Robot series centers around the theme of online privacy and security. One of the 10 guiding principles of Mozilla’s mission is that individuals’ security and privacy on the internet are fundamental and must not be treated as optional. The more people know about what information they are sharing online, the more they can protect their privacy.”

Despite the troubling way the extension was installed, Mozilla said it doesn’t do anything to your system until you opt into the Alternate Reality Game, the immersive experience the organization designed to take fans into the Mr. Robot universe. Those who couldn’t care less about the show can kill the extension by typing about:addons in their address bar and removing Looking Glass.

Update: A Mozilla rep reached out and told Engadget:

“Our goal with the custom experience we created with Mr. Robot was to engage our users in a fun and unique way. Real engagement also means listening to feedback. And so while the web extension/add-on that was sent out to Firefox users never collected any data, and had to be explicitly enabled by users playing the game before it would affect any web content, we heard from some of our users that the experience we created caused confusion.

As a result we will be moving the Looking Glass Add-on to our Add-On store within the next 24 hours so Mr. Robot fans can continue to solve the puzzle and the source can be viewed in a public repository.”

Powering social feeds and timelines with Elasticsearch

Blog, Blog Slider, MightySlider, Uncategorized / elastisearch, search, seo / nielsnadmin

Evolving from MongoDB and Redis to Elasticsearch, Campus Discounts’ founder and CTO Don Omondi talks about how and why the company made the switch to power their user recommendation feeds.

Campus Discounts is a social network where students find and recommend discounts posted by businesses near campus. We have a worldwide list of campuses with their geographic location. Businesses create pages and post discounts tagging campuses near them. Students can then view their campus page and find discounts nearby.

If students signup (it’s free), they can select product categories of interest and also connect to fellow students through the buddy system. When a student’s friend recommends a discount which falls within the student’s categories of interest, he/she will be notified and see it on their feeds.

Our data is classified into two types. Primary data is our core data that includes users, pages, apps, discounts, countries, recommendations and campuses. It’s stored in a MariaDB RDBMS. Secondary data is derived from actions on primary data such as likes, comments, follows, ratings, reviews, friendships, etc. and are stored in a MongoDB database.

Our MariaDB tables typically look like this:

The recommendations table column “type” can have a value of 1 to represent a discount_recommendation, 2 for a page_recommendation or 3 for an app_recommendation.

When User A recommends a discount (eg. Save Big, 25% Off Mens’ Leather Shoes) it’s saved in the discount_recommendations table and pointers to it are saved in the recommendations table. This will appear in the feeds, for example, “User A recommends Save Big, 25% Off Mens’ Leather Shoes.”

If User B sees this recommendation and shares it, no new entry is made in the discount_recommendations table. Instead, a new entry in the recommendations table is made with the sharer as User B, but with data pointing to the exact recommendation made by User A. So, all comments and likes are tied to the original discount_recommendation.

When building the UI, if the recommendations sharer ID does not match the recommender ID, then the feed item will appear as “User B shared User A’s recommendation Save Big, 25% Off Mens’ Leather Shoes”.

Normalization in RDBMS – The Good

This model highlights the strength of normalization in relational databases. For example, a discount recommendation is joined to a discount, which is joined to a category and page. The latter of which is joined to a country. The same discount recommendation is also joined to a user (recommender), which is joined to a country as well as a campus. A campus is also joined to a country.

This means that a user who has set “Men’s Shoes” as a category of interest could have a feed entry such as:

  • discount recommendations for “men’s shoes” – a category join
  • by my friends – a join on user_id
  • in my campus – a join on campus
  • by businesses – a join on page
  • in my country – a join on country
  • near my campus – a join by location.

That’s 6 joins and it easily could be more.

Normalization in RDBMS – The Bad

RDBMS joins are one of the biggest performance killers at scale especially when multiple joins are used. In our case, the user feed contains 3 types of recommendations arranged in a collective, time-based chronological order. Queries span across 3 different tables and thus are fetched one-by-one.

A typical feed fetch of this nature would look like this:

  1. Find my friend ids (1 query)
  2. Find my interests i.e. category ids (1 query)
  3. Find my latest 20 friend recommendations of interest (1 query)
  4. Populate feed by fetching each of the 20 recommendations one by one i.e. (20 queries of 6 joins each!)

Almost all of our data is persisted asynchronously using RabbitMQ, so users are oblivious to whether it took 1 second, 15 seconds, or 5 minutes to perform tasks. Hence, writing to the DB was not the issue, just reads were.

MongoDB – Redis Hybrid

We initially tried to solve this problem by caching, so we created a temporary store for each user’s timeline and feed in MongoDB and kept this store in RAM for fast retrieval.

We have two collections: user_feeds and user_timelines. Each collection stores one document per user with the _id set to the users’ respective ids. When a user makes a recommendation, that data will be cached as an embedded document in a user’s timeline.

Simultaneously, we established feeds for those friends whose interests align with the discount category of this new recommendation. Their MongoDB documents are updated with new entries as embedded documents. This is a Push-on-Change strategy where each document contains a cache of the recommendations table and is restricted to a maximum of 200 embedded documents.

Still, there were expensive queries on the discount_recommendationspage_recommendations, and app_recommendations tables. Ideally, each query would be embedded along with the recommendations table data, but this would lead to unsustainable data duplication.

Instead, we cached each result of the 6-join query in Redis setting the key to a hash of the respective ID. A user_feed document looked like this:

{
   "_id": 1,
   "recommendations": {
     "0": {
       "_id": 1,
       "user_id": 1,
       "type": 1,
      "recommendation_id": 1
     },
     "1": {
       "_id": 3,
       "user_id": 78,
       "type": 2,
       "recommendation_id": 3
     },
     "2": {
       "_id": 45,
       "user_id": 2,
       "type": 1,
       "recommendation_id": 6
     },
     "3": {
       "_id": 564,
       "user_id": 7,
       "type": 3,
       "recommendation_id": 9
     }
   }
}

While a discount_recommendation key-value in Redis looked like this:

{
 "data": {
   "discount_recommendation_id": 1,
   "discount": {
     "id": 1,
     "title": "Save Big, 25% Off Mens’ Leather Shoes",
     "category": {
       "id": 1,
       "name": "Men’s Shoes"
     },
     "page": {
       "id": 1,
       "name": "Safari Shoes LTD.",
       "country": {
         "id": 1,
         "name": "Kenya"
       },
       "location": {
         "latitude": 12.121212,
         "longitude": 12.121212
       }
      }
    },
   "recommended_by": {
     "id": 1,
     "username": "The_Don_Himself",
     "country": {
       "id": 1,
       "name": "Kenya"
   },
   "campus": {
     "id": 1,
     "name": "University of Nairobi, Chiromo Campus",
     "country": {
       "id": 1,
       "name": "Kenya"
     },
     "location": {
       "latitude": 12.121212,
       "longitude": 12.121212
     }
   }
 },
 "recommened_on": {
   "date": "2015-05-07 10:48:23.000000",
   "timezone_type": 3,
   "timezone": "UTC"
  }
 }
}

This approach performed really well. A MongoDB document was fetched and the individual recommendations fetched over a loop from Redis. Eventually, a user got his feed in less than 30ms for 20 items at a time after 21 queries.

But if it was all rosy, why did we abandon this approach?

The disadvantages:

  1. A user’s friends could possibly fill his 200 limit feed cache with only one type of recommendation making filtering for another type yield nothing.
  2. Whenever a user changed his interests by adding or removing a category, or when a user made or removed friends, his existing feed document would have to be destroyed and regenerated.
  3. The biggest disadvantage was that a user could not filter his feed on the fly (e.g. a user viewing his feed could not just select one category for example phones and just get friends recommendations for phones alone). The only way to do so was to change profile settings which leads to disadvantage #2.

Elasticsearch

Therefore, a more flexible approach was required. We needed a model that allowed us to fall in line with the reactive requirements of modern apps. Using Elasticsearch, we changed our feeds generation strategy from Push-on-Change to Pull-on-Demand.

So how does Elasticsearch make things more flexible?

With Elasticsearch, a single query can easily and quickly fetch different documents across the entire dataset. Elasticsearch also has a feature called Types that are a very interesting but a sometimes misused feature that allows you to save several types of data in the same index. Being in the same index means a query across several types would normally perform better than a query across a similar dataset across several indices – unless the index holding the multiple types is really large.

The performance boost is nice, but the best part of types is that they represent a class of similar documents with similar mappings. So we’ve created a recommendations_type_index and saved our data as discount_recommendations_typepage_recommendations_type and app_recommendations_type.

Elasticsearch scores use index-wide statistics and since our recommendations have similar fields like datetimetotallikestotalcommentstotalshares and so forth, we can now use Elasticsearch Types to provide a feeds display algorithm other than the time-based chronological method of our previous MongoDB – Redis setup.

The main advantages over previous setup are:

  1. This reduced our queries from 23 to just 3.
  2. No need to cache a list of 200 recommendations per user.
  3. We are now able to query recommendations by deeply nested fields on the fly allowing us to introduce new, real-time, filter-like features to our users.

The main disadvantages over previous setup are:

  1. Index size. We de-normalized our data to fit it in an all-in-one document. This increased query performance, but led to a much larger size on disk due to data duplication.
  2. Tedious updates. Changes required a scan and update across all documents that have that data present.
  3. Varying query times. MongoDB – Redis setup has pre-cached feeds that gave a more predictable standard deviation of feed generation times, but with Elasticsearch, a feed’s query time now depends on the number of filters used.

Conclusion

So there you have it, a fully functional and elastic user feed system. I hope this exposed some interesting uses of various databases that we use and that it can inspire you to use it as it’s meant to be – a tool to help you accomplish a task.

Neurons Interactive Sequence

Blog, Blog Slider / animation, interactive, motion, neuron, neurons, science / nielsnadmin

The Best Mockup & Wireframing Design Tools & Apps for UI/UX Designers in 2017

MightySlider / nielsnadmin

Prototyping/wireframing tools are the best communication method between interaction designers, project manager, and website developers. It’s a key step of web or mobile app development process. While in principle, the design of prototypes must be a product of interaction designers, and the user-centered concept shall run through the whole product design progress. The professional perspective and rich user experience of interaction designer will directly influence the usability of the product.

Desktop-based Prototyping Tools

prototyping tools for PC

1. Axure RP (Mac & Win) | ($495/user)

Axure RP is a desktop application that allows designers to create, test, and share interactive prototypes. Been called as the most comprehensive (in terms of functionality) prototyping tools, it’s an ideal desktop software for both static, low-fidelity prototypes and more sophisticated, interactive prototypes. As an extremely professional UX tool, Axure requires a steep learning curve.

2. Mockplus (Mac & Win) | ($129/year)

Mockplus is an all-inclusive rapid prototyping tool supports for the mainstream platforms of PC, website, and mobile device. The packaged interactions components and creative preview method allow designers to design and preview within minutes. It is a solid prototyping app for professional UI/UX designers who want to produce high-quality prototypes but without too much longer learning curve. In 2017, the Mockplus team released the Mockplus 3.2 version, which added powerful features including:

UI Flow Design Mode – Instant switch between Prototype and UI Flow design modes; Display the UI flow of all or some certain pages; Intelligent connections between pages which can be adjust manually; Display important markups of pages; Export UI Flow at once.

Repeater – Convert any component easily into a Repeater. Drag the border of a Repeater to create repeated elements. Your adjustments made on one component will be applied to all.

Demo Projects and Templates – Demo Projects: Well-structured demos for you to make reference. Templates: Various built-in templates help you to build your prototypes on them, easy and fast.

Sketch Import – Publish selected Sketch Artboards as a Team Project in Mockplus. Insert Sketch Artboards into a Mockplus Team Project.

Other features like Mind Map Design Mode will be presented in the versions after Mockplus 3.2.

3. Justinmind (Mac & WIn) | ($228/year)

Justinmind is a flexible prototyping tool for web and mobile app prototypes and high-fidelity website wireframes. The rich gestures in Justinmind allow designers to better build gesture interaction mobile apps. Justinmind also requires a deep learning curve, such as value expression.

4. Balsamiq (Win) | ($89/user)

Balsamiq Mockups is a rapid wireframing tool that helps you work faster & smarter. It reproduces the experience of sketching on a whiteboard, but using a computer. By comparison, Balsamiq is more focus on static and low-fidelity prototypes.

5. OmniGraffle (Mac) |($199.99)

OmniGraffle is a powerful design tool, it has extensive options for objects, canvases, templates, inspectors, and stencils to help designers set out to do something well, quickly. It has won the Apple Design Award in 2002.

Some other mockup tools:

Origami — A free tool for designing modern user interfaces (Mac) |

Adobe Experience Design — The first all-in-one tool for UX designers (Mac)

Prott— A new mobile app prototyping tool built for design teams (Mac) | ($421/year)

Principle — An animated design tool for interactive prototypes (Mac) | ($129/year)

Prototyping tools

So, the problem of how to complete a good prototype design that’s depending on how you choose prototyping/wireframing tools. Below are the most popular mockup & prototyping/wireframing tools & appsbased on the website, desktop, and mobile device.

Web-based Prototyping Tools

prototyping tools for web

1.InVision | ($25/month)

As a web-based collaborative program, InVision is powerful at clickable & interactive prototypes, real-time design collaboration & share. InVison is an ideal choice for high fidelity design which is always impressive. The nice features such as Invision + Sketch, Invision + Adobe could be a great helpful for designers who pursue the high-end product.

2. UXpin | ($44.08 per user/year, starting from 4 users)

UXpin puts everything for designers in a UX design platform, also, it supports to upload file seamlessly on Sketch and Photoshop. Responsive prototypes and wireframes created by UXpin can run on different devices and resolutions. In addition, this software also provides version control and iterative function, you can easily share and preview prototypes by the intuitive and real-time collaboration.

3. Marvel | ($168 per user/year)

Marvel is also a web-based prototyping tool with good real-time collaboration. You can simply import mockup images from Sketch or Photoshop to link into clickable interactive prototypes for different devices. Just simple drag and link, you can bring your idea to life without any code experience.

4. FluidUI | ($99/year)

With built-in iOS, Material Design and Wireframe libraries containing over 2000 customizable widgets and icons, you can design and share a wireframe, mockup or prototype for any device or platform in minutes. FluidUI also features real-time collaboration for teams, video hangouts for user testing, on-device testing and interactive previews with chat/comments to share and iterate your designs with your team.

5. Proto.io

Proto.io is a very strong web app with many functions. Under the web-based environment, it supports rich gestures and touch style, such as slide, touch, zoom, press and other mainstream actions. With it, developers can create interactive prototypes for the iOS, Android and other mobile internet devices, and get feedback from users.

Some other web-based prototyping tools:

Pidoco — Online wireframe and UX prototyping tool | ($660/year for premium)

Mockingbird — Wireframes on the fly | ($40/month for 25 projects)

Mockflow — Great design tools and collaboration services for designers | ($148/year)

Moqups — Mockup, wireframe & UI prototyping tool for creating hi-fi wireframes | ($228/year for Pro)

Gliffy — Mock up web pages quickly & easily with wireframes | ($480/year for 10 projects)

Wireframe.cc — Minimal wireframing tool | ($390/year)

Framer — Design tool for code needed | ($159/year)

Mobile-based Prototyping Tools

prototyping tools for mobile

1. POP(Prototyping on Paper) (iOS & Android) | ($168/year)

Joined Marvel in the end of 2016.

2. Tapcase (iOS) |

TapCase lets designers create app prototypes from hand-drawn sketches and screen mockups. It’s quite fast and easy to create interactive elements by adding hotspots, linking target screens, and picking transition animations.

3. Marvelapp (iOS & Android) | ($168/year)

Marvelapp is a free prototyping app for mobile app, the whole design progress completed on mobile devices. Like POP and Tapcase, easily upload the prepared sketches or screen mockups, and add inbuilt transitions & gestures to make the pen & paper ideas to live.

Some other mobile-based prototyping tools:

Mockplus app — Easily & quickly preview prototypes on mobile devices by scanning QR code or input the view code. (iOS & Android)

JustinMindPrototyper — The prototype viewer for Justinmind prototypes (iOS & Android)

Mockup Builder — Super-easy prototyping and mockups (iOS & Android)

Live Wires — To quick wireframe & prototype for iPhone and iPad app (iOS)

Appcooker — Prototyping studio for iPhone & iPad (iOS)

UX vs UI vs IA vs IxD : 4 Confusing Digital Design Terms Defined

Blog, MightySlider, Uncategorized / nielsnadmin

Once upon a time, if you said the word “design”, the odds were overwhelmingly likely you were talking about graphic design. But nowadays, the digital world is becoming increasingly more complicated and a lot of new job positions appearing, which lead to confusion for people outside or new to the design industry. Here’s a quick overview on the four different primary forms of design to help you understand what they mean.

UX Design (User Experience Design)

image by: Netizen Experience

As is found on Wikipedia “User experience design (UXD, UED or XD) is the process of enhancing user satisfaction by improving the usability, accessibility, and pleasure provided in the interaction between the user and the product. User experience design encompasses traditional human–computer interaction (HCI) design, and extends it by addressing all aspects of a product or service as perceived by users.

UX designer is the person in charge with creating the products “logic” via wireframes and prototypes via software like Axure, JustInMind, Mockplus etc. Communication is one of the critical skills of the UX designers. They also conduct research, competitive analysis at the beginning as well as usability testing and A/B testing after the project has launched. UX designers are primarily concerned with how the product feels. If your website or app is difficult to use, users will probably be frustrated and move on to something else. If they have a great experience, they’re more likely to come back and tell their friends how great your app is.

Deliverables: Wireframes, Prototypes, Storyboards, Sitemap, Written specifications.

Tools of the trade: Sketch, Axure, Mockplus, Fireworks, UXPin

UI Design (User Interface Design)

image by: julessdesign

Author and founder of Adaptive Path — a user experience consultancy, Jesse James Garrett, defines interface design as being all about selecting the right interface elements — like text, buttons, text fields, color coded lists, etc — for the task the user is trying to accomplish and arranging them on the screen in a way that will be readily understood and easily used. The goal is make the user’s interaction as efficient and simple as possible.

Interface elements include but are not limited to:

Input Controls: buttons, text fields, checkboxes, radio buttons, dropdown lists, list boxes, toggles, date field

Navigational Components: breadcrumb, slider, search field, pagination, slider, tags, icons

Informational Components: tooltips, icons, progress bar, notifications, message boxes, modal windows

Containers: accordion

Tools of the trade: Photoshop, Sketch, Illustrator, Fireworks, InVision

IA (Information Architecture)

imgae by: ga-core.s3.amazonaws.com

Information architecture (IA) involves the way a website/app is structured and how the content is organized. The goal is to help users find information and complete tasks. “In other words, information architecture is the creation of a structure for a website, application, or other project, that allows us to understand where we are as users, and where the information we want is in relation to our position. Information architecture results in the creation of site maps, hierarchies, categorizations, navigation, and metadata. When a content strategist begins separating content and dividing it into categories, she is practicing information architecture. When a designer sketches a top level menu to help users understand where they are on a site, he is also practicing information architecture”- from uxbooth.com

Some qualifications for IA:

1. Experience documenting complex digital properties (websites, mobile apps, products, and system services)

2. Extremely detailed documentation, ability to find discrepancies, cracks, etc. amongst complex site documentation

3. Proficient with Axure, Omnigraffle, Keynote, as well as Visio and any other programs directly related to IA

4. Analyze available information and assets to assess optimal IA approach

Strong communication skills (written and verbal), and an ability to present effectively to agency and client staff

5. Needs to be analytical, hardworking, creative, curious and interested in people and ideas

6. Must be a confident and motivated self starter

IxD (Interaction Design)

Definition of IxD: “Interaction Design (IxD) defines the structure and behavior of interactive systems. Interaction Designers strive to create meaningful relationships between people and the products and services that they use, from computers to mobile devices to appliances and beyond. Our practices are evolving with the world.”- from ixda.org

IxD designer is the people in charge of the websites/apps moving elements & interactions. If you’ve seen a cool animation on a website or app, that made you say wow or that is really cool, that’s the stuff motion designers do.

Job description of IxD designer at Google:

In an Interaction Designer role, you’ll tackle complex tasks and transform them into intuitive, accessible and easy-to-use designs for billions of people around the world-from the first-time user to the sophisticated expert. Achieving this goal requires collaboration with teams of Designers, Researchers, Engineers and Product Managers throughout the design process-from creating user flows and wireframes to building user interface mockups and prototypes. At each stage, you will anticipate what our users need, advocate for them and ensure that the final product surprises and delights them.

So in an oversimplified and user-friendly nutshell, UX Design is how a user feels about the apps, UI Design is what, where and how elements work on the apps, Information Architecture is how a app is organized, and Interaction Design is how the user and app act and react to each other.

Last but not least, the boundaries between each of these various design roles are very fluid. The IxD is quite similar to UX design in it’s approach as it’s part of the UX design cycle, so in some cases these roles may have a lot of overlap.

you may also interested in:

UX Is Not UI: What Is the Difference between UX and UI Design?

Blog, MightySlider, Uncategorized / nielsnadmin

UX has been a buzzword that bounces around the design world, endorsed and adopted by designers anddevelopers. In many cases, highly respected developers who claim to be talking about ”UX” in a product demonstration are in fact showing a large number of UI features. I doubt much that the vague definition may account for this kind of misunderstanding. We’ve heard of UI (User interface) and UX (User Experience). When you build an App or a website with Mockplus, we will talk to you about both. If UX is not UI, What is the exact difference?

The Definition of UX

user experience design

UX is not UI, then what is the definition of UX exactly? Here I am not going to shoot the cliche but to provide you with a intuitive introduction which will help you to get a quick understanding of why UX is not UI. Good UX designfocuses on the interactive side of the product, how it behaves, such as a box sliding out, and how people might interact with it, such as where they will click first. UX handles the architecture of the content and the site map.

If you take a deeper look into the definition which is now gradually formed in your mind, you might have noticed the simplest difference between UX and UI. We all enjoy using UX as a prevailing buzzword, but if you are talking about how the page is physically laid out, where things should go, what colors to use or something like that, let’s accept the fact that they are UI things and UX is not UI.

The Definition of UI

ux vs ui

To get a better understanding of why UX is not UI, UI is a small part of UX to some extent. However, UI design focuses more on colors and typography. Let’s pick a textbook example. If there need to be a button, UI designers will concentrate on the visual part. Namely, how the button will look like and what color to use, whileUX designers are trying to figure out where to put it with the intention to find what users want and the resolutions to those pain points. So next time if you hear something like “building great user experiences with Silverlight 4” or“Mastering HTML5, CSS3 and Jquery to implement stunning user experience”, you can just laugh it off or boo them if you want to.

The Vomit-flavoured Lollipop Problem

There happens to be an interesting argument attempting to trivialize the difference between UX and UI: If you are selling shit-flavoured lollipops, will the best experience design in the world save you? My short answer isYES.

ux designer vs ui designer

Here is the long answer. Last year I came across an operating system claiming to be the best OS on the Eastern Hemisphere called Smartisan OS. As might be expected, I bought the phone and found it just a piece of shit. The system crashed whenever I ran more than 3 Apps and the heat of the hardware could burn off my hands. Nevertheless, some user-friendly designs in Smartisan OS did amaze me, such as the contacts searching system and tricks like timed mute options. These details combined to win the company 60 thousand users in the intense mobile market in China.

What if We Just Enjoy Using the Buzzword (Though We Know It’s Inaccurate)

Buzzwords are tempting. We all get the sense of superiority of being professional by using the catching words but sometimes the singing Siren kills. Trivial misunderstanding like this is creating a mess in the employment process. Companies and talents all fuck up before their first meeting with each other. So please, if we want to look like professionals, we firstly need to act like ones- at least use the word right and admit that UX is not UI.

  • Ransomware attack posing as Adobe software update

    The U.S. government has issued a warning about a new ransomware attack that spread through Russia and Ukraine and into other countries around the world. Cybersecurity experts said the ransomware — which posed as an Adobe update before locking down computers and demanding money for people to get their files back — targeted Russian media […]

  • Hackers shut down plant by targeting its safety system

    Hackers have already attacked critical infrastructure, but now they’re launching campaigns that could have dire consequences. FireEye reportedthat a plant of an unmentioned nature and location (other firms believe it’s in the Middle East) was forced to shut down after a hack targeted its industrial safety system — it’s the first known instance of a breach like this taking […]

  • Firefox faces backlash for auto-installing ‘Mr. Robot’ add-on

    A curious add-on called “Looking Glass” started popping up on Firefox for a number of users this past week — even if they didn’t give the browser permission to install it. Due to its nebulous nature and creepy description that only said “MY REALITY IS JUST DIFFERENT FROM YOURS,” people took to social networks to ask other […]

  • Powering social feeds and timelines with Elasticsearch

    Evolving from MongoDB and Redis to Elasticsearch, Campus Discounts’ founder and CTO Don Omondi talks about how and why the company made the switch to power their user recommendation feeds. Campus Discounts is a social network where students find and recommend discounts posted by businesses near campus. We have a worldwide list of campuses with their […]

  • Neurons Interactive Sequence
    jQuery(document).ready(function($){ var videoplayersettings3 = { autoplay : "off", cueVideo : "on", ad_show_markers : "on", controls_out_opacity : "1", controls_normal_opacity : "1" ,settings_hideControls : "off" ,settings_video_overlay : "on" ,settings_disable_mouse_out : "off" ,settings_ios_usecustomskin : "off" ,settings_swfPath : "http://nielsn.com/wp-content/plugins/dzs-videogallery/preview.swf" ,design_skin: "skin_aurora",vimeo_byline:"0",vimeo_portrait:"0",settings_video_end_reset_time:"off"}; jQuery(".vp3").vPlayer(videoplayersettings3); });
  • The Best Mockup & Wireframing Design Tools & Apps for UI/UX Designers in 2017

    Prototyping/wireframing tools are the best communication method between interaction designers, project manager, and website developers. It’s a key step of web or mobile app development process. While in principle, the design of prototypes must be a product of interaction designers, and the user-centered concept shall run through the whole product design progress. The professional perspective and rich user […]

  • UX vs UI vs IA vs IxD : 4 Confusing Digital Design Terms Defined

    Once upon a time, if you said the word “design”, the odds were overwhelmingly likely you were talking about graphic design. But nowadays, the digital world is becoming increasingly more complicated and a lot of new job positions appearing, which lead to confusion for people outside or new to the design industry. Here’s a quick […]

  • UX Is Not UI: What Is the Difference between UX and UI Design?

    UX has been a buzzword that bounces around the design world, endorsed and adopted by designers anddevelopers. In many cases, highly respected developers who claim to be talking about ”UX” in a product demonstration are in fact showing a large number of UI features. I doubt much that the vague definition may account for this kind […]

BLatest Blog

Ransomware attack posing as Adobe software update

Blog, Blog Slider, MightySlider, Uncategorized / nielsnadmin

The U.S. government has issued a warning about a new ransomware attack that spread through Russia and Ukraine and into other countries around the world.

Cybersecurity experts said the ransomware — which posed as an Adobe update before locking down computers and demanding money for people to get their files back — targeted Russian media companies and Ukrainian transportation systems. It has also been detected in other countries including the U.S., Germany and Japan.

The U.S. Computer Emergency Readiness Team said late Tuesday it “has received multiple reports of ransomware infections … in many countries around the world.”

Dubbed “Bad Rabbit,” the virus is the latest example of cybercriminals using ransomware to try to extort money from victims across the globe. Two major international attacks earlier this year — NotPetya and Wannacry — caused widespread disruption affecting businesses, government institutions and hospitals.

Related: Why ransomware attacks keep happening

When Bad Rabbit infects a computer, it seizes files and demands a ransom. Experts and government agencies advise victims not to pay up, warning that there’s no guarantee they will get their files back.

On Tuesday, the virus attacked Russian media groups Interfax and Fontanka, and transportation targets in Ukraine including Odessa’s airport, Kiev’s subway and the country’s Ministry of Infrastructure of Ukraine, according to Russian cybersecurity firm Group-IB. Interfax confirmed its servers had gone down due to a cyberattack.

Most of the victims were located in Russia, but attacks were also observed in Ukraine, Turkey, and Germany. Cybersecurity firm ESET also identified cases of Bad Rabbit in Japan and Bulgaria. Another company, Avast, says the ransomware has been detected in the U.S., South Korea and Poland.

Related: What is ransomware?

Ties to previous attack

The number of victims appeared to be significantly smaller than the NotPetya attack, which struck Ukraine and spread to other countries in June, doing hundreds of millions of dollars of damage to some major companies.

Experts said there were clear links between the two viruses.

Vyacheslav Zakorzhevsky, head of the anti-malware research team at Russian cybersecurity firm Kaspersky Lab, said the company’s investigation shows the Bad Rabbit attack targeted corporate networks using similar methods as NotPetya.

How to protect yourself from hackers

Costin Raiu, director of the Global Research and Analysis Team at Kaspersky Lab, said in a message the Bad Rabbit attack was launched through “an elaborate network of hacked websites,” with a link to NotPetya.

Group-IB also identified similarities between the NotPetya code and that of Bad Rabbit.

Related: Why ransomware costs small businesses big money

Virus used popular malware trick

The Bad Rabbit ransomware infiltrated computers by posing as an Adobe Flash installer on compromised news and media websites. It serves as a reminder that people should never download apps or software from pop-up advertisements or websites that don’t belong to the software company.

ESET says once the ransomware infected a machine, it scanned the network for shared folders with common names and attempted to steal and exploit user credentials to get on other computers.

Researchers say Bad Rabbit doesn’t use EternalBlue, the Windows exploit that was leaked in a batch of hacking tools believed to belong to the U.S. National Security Agency. The NotPetya and WannaCry ransomware attacks did use EternalBlue.

Related: Hackers infiltrate free PC cleaning software

It’s unclear who’s behind Bad Rabbit, but the attackers appear to be “Game of Thrones” fans. The ransomware code contains references to characters from the popular book and TV series like Grey Worm and Daenerys’ dragons.

Many anti-virus software detects Bad Rabbit, including Windows Defender. A researcher from Cybereason discovered a “vaccine” that the company said can protect machines from infection.

According to malware researcher James Emery-Callcott, the ransomware campaign is slowly dying down.

“As far as I can see, the attacker’s server is no longer live and most of the infected sites hosting the script that gives the Flash update prompt” have fixed the issue, he said. “Fake Flash updates are an incredibly popular method of distributing malware these days. Hopefully people will start to realize that when you get an unsolicited Flash update, it’s generally going to be bad.”

Hackers shut down plant by targeting its safety system

Blog, Blog Slider, MightySlider, Uncategorized / hackers, safety, security / nielsnadmin

Hackers have already attacked critical infrastructure, but now they’re launching campaigns that could have dire consequences. FireEye reportedthat a plant of an unmentioned nature and location (other firms believe it’s in the Middle East) was forced to shut down after a hack targeted its industrial safety system — it’s the first known instance of a breach like this taking place. While the digital assault was clearly serious in and of itself, there are hints that it could have been much worse.

The malware, nicknamed Triton, hijacked a workstation using Schneider Electric’s Triconex safety technology (typically used in power plants). The culprits hoped to modify controllers that could pinpoint safety problems, but some of those controllers entered a failsafe state in response and shut down the plant, leading operators to conduct the investigation that caught the hostile code. Triton was otherwise fairly sophisticated. It would try to recover failed controllers to avoid raising alerts, and would even overwrite its own programs with junk data if it couldn’t salvage a controller inside of a given time window.

The hack wasn’t made possible by a flaw in Triconex itself, FireEye noted. Instead, it appeared to be an “isolated incident.”

While it’s not certain who’s responsible, FireEye said the hack was “consistent” with a “nation state” readying an attack. And that’s concerning, especially if the perpetrators learn from their mistakes. While shutting down a power plant would be bad enough, it’d be worse if the malware could fool a safety system into allowing attacks that would damage the facility and lead to a long-term shutdown or an environmental disaster. In short, companies and governments alike may have no choice but to prioritize defending critical infrastructure if they want to avoid crippling attacks.

Firefox faces backlash for auto-installing ‘Mr. Robot’ add-on

Uncategorized / internet, net / nielsnadmin

A curious add-on called “Looking Glass” started popping up on Firefox for a number of users this past week — even if they didn’t give the browser permission to install it. Due to its nebulous nature and creepy description that only said “MY REALITY IS JUST DIFFERENT FROM YOURS,” people took to social networks to ask other users and air their concerns. Turns out Looking Glass isn’t spamware, malware or any of the sort: it’s a promotional campaign for Mr. Robota TV series about the life of a cybersecurity-engineer-slash-hacker.

A screenshot of Looking Glass version 1.0.3 captured by TechCrunch shows that the extension’s profile barely had anything in it. Version 1.0.4, which one of Engadget’s editors found in his browser, was more forthcoming and admitted that it’s a collaboration between Mr. Robot and Mozilla.

Based on the details unearthed by affected users, the add-on was developed by Mozilla’s Shield Studies program, a platform available on all Firefox channels that gives you a way to test features before they’re released. Some Shield studies ask for your permission to opt in, others automatically make their way to your browser and require you to actively opt out. Problem is, some weren’t even aware that they’re part of the Shield program, so they had no idea where the extension could’ve come from.

Mozilla is now facing backlash for installing the add-on without people’s consent, especially since it always stresses how important users’ privacy is to the organization. In fact, in the page explaining what Looking Glass is, Mozilla wrote:

“The Mr. Robot series centers around the theme of online privacy and security. One of the 10 guiding principles of Mozilla’s mission is that individuals’ security and privacy on the internet are fundamental and must not be treated as optional. The more people know about what information they are sharing online, the more they can protect their privacy.”

Despite the troubling way the extension was installed, Mozilla said it doesn’t do anything to your system until you opt into the Alternate Reality Game, the immersive experience the organization designed to take fans into the Mr. Robot universe. Those who couldn’t care less about the show can kill the extension by typing about:addons in their address bar and removing Looking Glass.

Update: A Mozilla rep reached out and told Engadget:

“Our goal with the custom experience we created with Mr. Robot was to engage our users in a fun and unique way. Real engagement also means listening to feedback. And so while the web extension/add-on that was sent out to Firefox users never collected any data, and had to be explicitly enabled by users playing the game before it would affect any web content, we heard from some of our users that the experience we created caused confusion.

As a result we will be moving the Looking Glass Add-on to our Add-On store within the next 24 hours so Mr. Robot fans can continue to solve the puzzle and the source can be viewed in a public repository.”

Powering social feeds and timelines with Elasticsearch

Blog, Blog Slider, MightySlider, Uncategorized / elastisearch, search, seo / nielsnadmin

Evolving from MongoDB and Redis to Elasticsearch, Campus Discounts’ founder and CTO Don Omondi talks about how and why the company made the switch to power their user recommendation feeds.

Campus Discounts is a social network where students find and recommend discounts posted by businesses near campus. We have a worldwide list of campuses with their geographic location. Businesses create pages and post discounts tagging campuses near them. Students can then view their campus page and find discounts nearby.

If students signup (it’s free), they can select product categories of interest and also connect to fellow students through the buddy system. When a student’s friend recommends a discount which falls within the student’s categories of interest, he/she will be notified and see it on their feeds.

Our data is classified into two types. Primary data is our core data that includes users, pages, apps, discounts, countries, recommendations and campuses. It’s stored in a MariaDB RDBMS. Secondary data is derived from actions on primary data such as likes, comments, follows, ratings, reviews, friendships, etc. and are stored in a MongoDB database.

Our MariaDB tables typically look like this:

The recommendations table column “type” can have a value of 1 to represent a discount_recommendation, 2 for a page_recommendation or 3 for an app_recommendation.

When User A recommends a discount (eg. Save Big, 25% Off Mens’ Leather Shoes) it’s saved in the discount_recommendations table and pointers to it are saved in the recommendations table. This will appear in the feeds, for example, “User A recommends Save Big, 25% Off Mens’ Leather Shoes.”

If User B sees this recommendation and shares it, no new entry is made in the discount_recommendations table. Instead, a new entry in the recommendations table is made with the sharer as User B, but with data pointing to the exact recommendation made by User A. So, all comments and likes are tied to the original discount_recommendation.

When building the UI, if the recommendations sharer ID does not match the recommender ID, then the feed item will appear as “User B shared User A’s recommendation Save Big, 25% Off Mens’ Leather Shoes”.

Normalization in RDBMS – The Good

This model highlights the strength of normalization in relational databases. For example, a discount recommendation is joined to a discount, which is joined to a category and page. The latter of which is joined to a country. The same discount recommendation is also joined to a user (recommender), which is joined to a country as well as a campus. A campus is also joined to a country.

This means that a user who has set “Men’s Shoes” as a category of interest could have a feed entry such as:

  • discount recommendations for “men’s shoes” – a category join
  • by my friends – a join on user_id
  • in my campus – a join on campus
  • by businesses – a join on page
  • in my country – a join on country
  • near my campus – a join by location.

That’s 6 joins and it easily could be more.

Normalization in RDBMS – The Bad

RDBMS joins are one of the biggest performance killers at scale especially when multiple joins are used. In our case, the user feed contains 3 types of recommendations arranged in a collective, time-based chronological order. Queries span across 3 different tables and thus are fetched one-by-one.

A typical feed fetch of this nature would look like this:

  1. Find my friend ids (1 query)
  2. Find my interests i.e. category ids (1 query)
  3. Find my latest 20 friend recommendations of interest (1 query)
  4. Populate feed by fetching each of the 20 recommendations one by one i.e. (20 queries of 6 joins each!)

Almost all of our data is persisted asynchronously using RabbitMQ, so users are oblivious to whether it took 1 second, 15 seconds, or 5 minutes to perform tasks. Hence, writing to the DB was not the issue, just reads were.

MongoDB – Redis Hybrid

We initially tried to solve this problem by caching, so we created a temporary store for each user’s timeline and feed in MongoDB and kept this store in RAM for fast retrieval.

We have two collections: user_feeds and user_timelines. Each collection stores one document per user with the _id set to the users’ respective ids. When a user makes a recommendation, that data will be cached as an embedded document in a user’s timeline.

Simultaneously, we established feeds for those friends whose interests align with the discount category of this new recommendation. Their MongoDB documents are updated with new entries as embedded documents. This is a Push-on-Change strategy where each document contains a cache of the recommendations table and is restricted to a maximum of 200 embedded documents.

Still, there were expensive queries on the discount_recommendationspage_recommendations, and app_recommendations tables. Ideally, each query would be embedded along with the recommendations table data, but this would lead to unsustainable data duplication.

Instead, we cached each result of the 6-join query in Redis setting the key to a hash of the respective ID. A user_feed document looked like this:

{
   "_id": 1,
   "recommendations": {
     "0": {
       "_id": 1,
       "user_id": 1,
       "type": 1,
      "recommendation_id": 1
     },
     "1": {
       "_id": 3,
       "user_id": 78,
       "type": 2,
       "recommendation_id": 3
     },
     "2": {
       "_id": 45,
       "user_id": 2,
       "type": 1,
       "recommendation_id": 6
     },
     "3": {
       "_id": 564,
       "user_id": 7,
       "type": 3,
       "recommendation_id": 9
     }
   }
}

While a discount_recommendation key-value in Redis looked like this:

{
 "data": {
   "discount_recommendation_id": 1,
   "discount": {
     "id": 1,
     "title": "Save Big, 25% Off Mens’ Leather Shoes",
     "category": {
       "id": 1,
       "name": "Men’s Shoes"
     },
     "page": {
       "id": 1,
       "name": "Safari Shoes LTD.",
       "country": {
         "id": 1,
         "name": "Kenya"
       },
       "location": {
         "latitude": 12.121212,
         "longitude": 12.121212
       }
      }
    },
   "recommended_by": {
     "id": 1,
     "username": "The_Don_Himself",
     "country": {
       "id": 1,
       "name": "Kenya"
   },
   "campus": {
     "id": 1,
     "name": "University of Nairobi, Chiromo Campus",
     "country": {
       "id": 1,
       "name": "Kenya"
     },
     "location": {
       "latitude": 12.121212,
       "longitude": 12.121212
     }
   }
 },
 "recommened_on": {
   "date": "2015-05-07 10:48:23.000000",
   "timezone_type": 3,
   "timezone": "UTC"
  }
 }
}

This approach performed really well. A MongoDB document was fetched and the individual recommendations fetched over a loop from Redis. Eventually, a user got his feed in less than 30ms for 20 items at a time after 21 queries.

But if it was all rosy, why did we abandon this approach?

The disadvantages:

  1. A user’s friends could possibly fill his 200 limit feed cache with only one type of recommendation making filtering for another type yield nothing.
  2. Whenever a user changed his interests by adding or removing a category, or when a user made or removed friends, his existing feed document would have to be destroyed and regenerated.
  3. The biggest disadvantage was that a user could not filter his feed on the fly (e.g. a user viewing his feed could not just select one category for example phones and just get friends recommendations for phones alone). The only way to do so was to change profile settings which leads to disadvantage #2.

Elasticsearch

Therefore, a more flexible approach was required. We needed a model that allowed us to fall in line with the reactive requirements of modern apps. Using Elasticsearch, we changed our feeds generation strategy from Push-on-Change to Pull-on-Demand.

So how does Elasticsearch make things more flexible?

With Elasticsearch, a single query can easily and quickly fetch different documents across the entire dataset. Elasticsearch also has a feature called Types that are a very interesting but a sometimes misused feature that allows you to save several types of data in the same index. Being in the same index means a query across several types would normally perform better than a query across a similar dataset across several indices – unless the index holding the multiple types is really large.

The performance boost is nice, but the best part of types is that they represent a class of similar documents with similar mappings. So we’ve created a recommendations_type_index and saved our data as discount_recommendations_typepage_recommendations_type and app_recommendations_type.

Elasticsearch scores use index-wide statistics and since our recommendations have similar fields like datetimetotallikestotalcommentstotalshares and so forth, we can now use Elasticsearch Types to provide a feeds display algorithm other than the time-based chronological method of our previous MongoDB – Redis setup.

The main advantages over previous setup are:

  1. This reduced our queries from 23 to just 3.
  2. No need to cache a list of 200 recommendations per user.
  3. We are now able to query recommendations by deeply nested fields on the fly allowing us to introduce new, real-time, filter-like features to our users.

The main disadvantages over previous setup are:

  1. Index size. We de-normalized our data to fit it in an all-in-one document. This increased query performance, but led to a much larger size on disk due to data duplication.
  2. Tedious updates. Changes required a scan and update across all documents that have that data present.
  3. Varying query times. MongoDB – Redis setup has pre-cached feeds that gave a more predictable standard deviation of feed generation times, but with Elasticsearch, a feed’s query time now depends on the number of filters used.

Conclusion

So there you have it, a fully functional and elastic user feed system. I hope this exposed some interesting uses of various databases that we use and that it can inspire you to use it as it’s meant to be – a tool to help you accomplish a task.

Neurons Interactive Sequence

Blog, Blog Slider / animation, interactive, motion, neuron, neurons, science / nielsnadmin

The Best Mockup & Wireframing Design Tools & Apps for UI/UX Designers in 2017

MightySlider / nielsnadmin

Prototyping/wireframing tools are the best communication method between interaction designers, project manager, and website developers. It’s a key step of web or mobile app development process. While in principle, the design of prototypes must be a product of interaction designers, and the user-centered concept shall run through the whole product design progress. The professional perspective and rich user experience of interaction designer will directly influence the usability of the product.

Desktop-based Prototyping Tools

prototyping tools for PC

1. Axure RP (Mac & Win) | ($495/user)

Axure RP is a desktop application that allows designers to create, test, and share interactive prototypes. Been called as the most comprehensive (in terms of functionality) prototyping tools, it’s an ideal desktop software for both static, low-fidelity prototypes and more sophisticated, interactive prototypes. As an extremely professional UX tool, Axure requires a steep learning curve.

2. Mockplus (Mac & Win) | ($129/year)

Mockplus is an all-inclusive rapid prototyping tool supports for the mainstream platforms of PC, website, and mobile device. The packaged interactions components and creative preview method allow designers to design and preview within minutes. It is a solid prototyping app for professional UI/UX designers who want to produce high-quality prototypes but without too much longer learning curve. In 2017, the Mockplus team released the Mockplus 3.2 version, which added powerful features including:

UI Flow Design Mode – Instant switch between Prototype and UI Flow design modes; Display the UI flow of all or some certain pages; Intelligent connections between pages which can be adjust manually; Display important markups of pages; Export UI Flow at once.

Repeater – Convert any component easily into a Repeater. Drag the border of a Repeater to create repeated elements. Your adjustments made on one component will be applied to all.

Demo Projects and Templates – Demo Projects: Well-structured demos for you to make reference. Templates: Various built-in templates help you to build your prototypes on them, easy and fast.

Sketch Import – Publish selected Sketch Artboards as a Team Project in Mockplus. Insert Sketch Artboards into a Mockplus Team Project.

Other features like Mind Map Design Mode will be presented in the versions after Mockplus 3.2.

3. Justinmind (Mac & WIn) | ($228/year)

Justinmind is a flexible prototyping tool for web and mobile app prototypes and high-fidelity website wireframes. The rich gestures in Justinmind allow designers to better build gesture interaction mobile apps. Justinmind also requires a deep learning curve, such as value expression.

4. Balsamiq (Win) | ($89/user)

Balsamiq Mockups is a rapid wireframing tool that helps you work faster & smarter. It reproduces the experience of sketching on a whiteboard, but using a computer. By comparison, Balsamiq is more focus on static and low-fidelity prototypes.

5. OmniGraffle (Mac) |($199.99)

OmniGraffle is a powerful design tool, it has extensive options for objects, canvases, templates, inspectors, and stencils to help designers set out to do something well, quickly. It has won the Apple Design Award in 2002.

Some other mockup tools:

Origami — A free tool for designing modern user interfaces (Mac) |

Adobe Experience Design — The first all-in-one tool for UX designers (Mac)

Prott— A new mobile app prototyping tool built for design teams (Mac) | ($421/year)

Principle — An animated design tool for interactive prototypes (Mac) | ($129/year)

Prototyping tools

So, the problem of how to complete a good prototype design that’s depending on how you choose prototyping/wireframing tools. Below are the most popular mockup & prototyping/wireframing tools & appsbased on the website, desktop, and mobile device.

Web-based Prototyping Tools

prototyping tools for web

1.InVision | ($25/month)

As a web-based collaborative program, InVision is powerful at clickable & interactive prototypes, real-time design collaboration & share. InVison is an ideal choice for high fidelity design which is always impressive. The nice features such as Invision + Sketch, Invision + Adobe could be a great helpful for designers who pursue the high-end product.

2. UXpin | ($44.08 per user/year, starting from 4 users)

UXpin puts everything for designers in a UX design platform, also, it supports to upload file seamlessly on Sketch and Photoshop. Responsive prototypes and wireframes created by UXpin can run on different devices and resolutions. In addition, this software also provides version control and iterative function, you can easily share and preview prototypes by the intuitive and real-time collaboration.

3. Marvel | ($168 per user/year)

Marvel is also a web-based prototyping tool with good real-time collaboration. You can simply import mockup images from Sketch or Photoshop to link into clickable interactive prototypes for different devices. Just simple drag and link, you can bring your idea to life without any code experience.

4. FluidUI | ($99/year)

With built-in iOS, Material Design and Wireframe libraries containing over 2000 customizable widgets and icons, you can design and share a wireframe, mockup or prototype for any device or platform in minutes. FluidUI also features real-time collaboration for teams, video hangouts for user testing, on-device testing and interactive previews with chat/comments to share and iterate your designs with your team.

5. Proto.io

Proto.io is a very strong web app with many functions. Under the web-based environment, it supports rich gestures and touch style, such as slide, touch, zoom, press and other mainstream actions. With it, developers can create interactive prototypes for the iOS, Android and other mobile internet devices, and get feedback from users.

Some other web-based prototyping tools:

Pidoco — Online wireframe and UX prototyping tool | ($660/year for premium)

Mockingbird — Wireframes on the fly | ($40/month for 25 projects)

Mockflow — Great design tools and collaboration services for designers | ($148/year)

Moqups — Mockup, wireframe & UI prototyping tool for creating hi-fi wireframes | ($228/year for Pro)

Gliffy — Mock up web pages quickly & easily with wireframes | ($480/year for 10 projects)

Wireframe.cc — Minimal wireframing tool | ($390/year)

Framer — Design tool for code needed | ($159/year)

Mobile-based Prototyping Tools

prototyping tools for mobile

1. POP(Prototyping on Paper) (iOS & Android) | ($168/year)

Joined Marvel in the end of 2016.

2. Tapcase (iOS) |

TapCase lets designers create app prototypes from hand-drawn sketches and screen mockups. It’s quite fast and easy to create interactive elements by adding hotspots, linking target screens, and picking transition animations.

3. Marvelapp (iOS & Android) | ($168/year)

Marvelapp is a free prototyping app for mobile app, the whole design progress completed on mobile devices. Like POP and Tapcase, easily upload the prepared sketches or screen mockups, and add inbuilt transitions & gestures to make the pen & paper ideas to live.

Some other mobile-based prototyping tools:

Mockplus app — Easily & quickly preview prototypes on mobile devices by scanning QR code or input the view code. (iOS & Android)

JustinMindPrototyper — The prototype viewer for Justinmind prototypes (iOS & Android)

Mockup Builder — Super-easy prototyping and mockups (iOS & Android)

Live Wires — To quick wireframe & prototype for iPhone and iPad app (iOS)

Appcooker — Prototyping studio for iPhone & iPad (iOS)

UX vs UI vs IA vs IxD : 4 Confusing Digital Design Terms Defined

Blog, MightySlider, Uncategorized / nielsnadmin

Once upon a time, if you said the word “design”, the odds were overwhelmingly likely you were talking about graphic design. But nowadays, the digital world is becoming increasingly more complicated and a lot of new job positions appearing, which lead to confusion for people outside or new to the design industry. Here’s a quick overview on the four different primary forms of design to help you understand what they mean.

UX Design (User Experience Design)

image by: Netizen Experience

As is found on Wikipedia “User experience design (UXD, UED or XD) is the process of enhancing user satisfaction by improving the usability, accessibility, and pleasure provided in the interaction between the user and the product. User experience design encompasses traditional human–computer interaction (HCI) design, and extends it by addressing all aspects of a product or service as perceived by users.

UX designer is the person in charge with creating the products “logic” via wireframes and prototypes via software like Axure, JustInMind, Mockplus etc. Communication is one of the critical skills of the UX designers. They also conduct research, competitive analysis at the beginning as well as usability testing and A/B testing after the project has launched. UX designers are primarily concerned with how the product feels. If your website or app is difficult to use, users will probably be frustrated and move on to something else. If they have a great experience, they’re more likely to come back and tell their friends how great your app is.

Deliverables: Wireframes, Prototypes, Storyboards, Sitemap, Written specifications.

Tools of the trade: Sketch, Axure, Mockplus, Fireworks, UXPin

UI Design (User Interface Design)

image by: julessdesign

Author and founder of Adaptive Path — a user experience consultancy, Jesse James Garrett, defines interface design as being all about selecting the right interface elements — like text, buttons, text fields, color coded lists, etc — for the task the user is trying to accomplish and arranging them on the screen in a way that will be readily understood and easily used. The goal is make the user’s interaction as efficient and simple as possible.

Interface elements include but are not limited to:

Input Controls: buttons, text fields, checkboxes, radio buttons, dropdown lists, list boxes, toggles, date field

Navigational Components: breadcrumb, slider, search field, pagination, slider, tags, icons

Informational Components: tooltips, icons, progress bar, notifications, message boxes, modal windows

Containers: accordion

Tools of the trade: Photoshop, Sketch, Illustrator, Fireworks, InVision

IA (Information Architecture)

imgae by: ga-core.s3.amazonaws.com

Information architecture (IA) involves the way a website/app is structured and how the content is organized. The goal is to help users find information and complete tasks. “In other words, information architecture is the creation of a structure for a website, application, or other project, that allows us to understand where we are as users, and where the information we want is in relation to our position. Information architecture results in the creation of site maps, hierarchies, categorizations, navigation, and metadata. When a content strategist begins separating content and dividing it into categories, she is practicing information architecture. When a designer sketches a top level menu to help users understand where they are on a site, he is also practicing information architecture”- from uxbooth.com

Some qualifications for IA:

1. Experience documenting complex digital properties (websites, mobile apps, products, and system services)

2. Extremely detailed documentation, ability to find discrepancies, cracks, etc. amongst complex site documentation

3. Proficient with Axure, Omnigraffle, Keynote, as well as Visio and any other programs directly related to IA

4. Analyze available information and assets to assess optimal IA approach

Strong communication skills (written and verbal), and an ability to present effectively to agency and client staff

5. Needs to be analytical, hardworking, creative, curious and interested in people and ideas

6. Must be a confident and motivated self starter

IxD (Interaction Design)

Definition of IxD: “Interaction Design (IxD) defines the structure and behavior of interactive systems. Interaction Designers strive to create meaningful relationships between people and the products and services that they use, from computers to mobile devices to appliances and beyond. Our practices are evolving with the world.”- from ixda.org

IxD designer is the people in charge of the websites/apps moving elements & interactions. If you’ve seen a cool animation on a website or app, that made you say wow or that is really cool, that’s the stuff motion designers do.

Job description of IxD designer at Google:

In an Interaction Designer role, you’ll tackle complex tasks and transform them into intuitive, accessible and easy-to-use designs for billions of people around the world-from the first-time user to the sophisticated expert. Achieving this goal requires collaboration with teams of Designers, Researchers, Engineers and Product Managers throughout the design process-from creating user flows and wireframes to building user interface mockups and prototypes. At each stage, you will anticipate what our users need, advocate for them and ensure that the final product surprises and delights them.

So in an oversimplified and user-friendly nutshell, UX Design is how a user feels about the apps, UI Design is what, where and how elements work on the apps, Information Architecture is how a app is organized, and Interaction Design is how the user and app act and react to each other.

Last but not least, the boundaries between each of these various design roles are very fluid. The IxD is quite similar to UX design in it’s approach as it’s part of the UX design cycle, so in some cases these roles may have a lot of overlap.

you may also interested in:

UX Is Not UI: What Is the Difference between UX and UI Design?

Blog, MightySlider, Uncategorized / nielsnadmin

UX has been a buzzword that bounces around the design world, endorsed and adopted by designers anddevelopers. In many cases, highly respected developers who claim to be talking about ”UX” in a product demonstration are in fact showing a large number of UI features. I doubt much that the vague definition may account for this kind of misunderstanding. We’ve heard of UI (User interface) and UX (User Experience). When you build an App or a website with Mockplus, we will talk to you about both. If UX is not UI, What is the exact difference?

The Definition of UX

user experience design

UX is not UI, then what is the definition of UX exactly? Here I am not going to shoot the cliche but to provide you with a intuitive introduction which will help you to get a quick understanding of why UX is not UI. Good UX designfocuses on the interactive side of the product, how it behaves, such as a box sliding out, and how people might interact with it, such as where they will click first. UX handles the architecture of the content and the site map.

If you take a deeper look into the definition which is now gradually formed in your mind, you might have noticed the simplest difference between UX and UI. We all enjoy using UX as a prevailing buzzword, but if you are talking about how the page is physically laid out, where things should go, what colors to use or something like that, let’s accept the fact that they are UI things and UX is not UI.

The Definition of UI

ux vs ui

To get a better understanding of why UX is not UI, UI is a small part of UX to some extent. However, UI design focuses more on colors and typography. Let’s pick a textbook example. If there need to be a button, UI designers will concentrate on the visual part. Namely, how the button will look like and what color to use, whileUX designers are trying to figure out where to put it with the intention to find what users want and the resolutions to those pain points. So next time if you hear something like “building great user experiences with Silverlight 4” or“Mastering HTML5, CSS3 and Jquery to implement stunning user experience”, you can just laugh it off or boo them if you want to.

The Vomit-flavoured Lollipop Problem

There happens to be an interesting argument attempting to trivialize the difference between UX and UI: If you are selling shit-flavoured lollipops, will the best experience design in the world save you? My short answer isYES.

ux designer vs ui designer

Here is the long answer. Last year I came across an operating system claiming to be the best OS on the Eastern Hemisphere called Smartisan OS. As might be expected, I bought the phone and found it just a piece of shit. The system crashed whenever I ran more than 3 Apps and the heat of the hardware could burn off my hands. Nevertheless, some user-friendly designs in Smartisan OS did amaze me, such as the contacts searching system and tricks like timed mute options. These details combined to win the company 60 thousand users in the intense mobile market in China.

What if We Just Enjoy Using the Buzzword (Though We Know It’s Inaccurate)

Buzzwords are tempting. We all get the sense of superiority of being professional by using the catching words but sometimes the singing Siren kills. Trivial misunderstanding like this is creating a mess in the employment process. Companies and talents all fuck up before their first meeting with each other. So please, if we want to look like professionals, we firstly need to act like ones- at least use the word right and admit that UX is not UI.

PPortfolio

We’re The Nation Agency, a small design agency based in United States. We’ve been crafting beautiful websites, launching stunning brands and making clients happy for years.

PPortfolio

We’re The Nation Agency, a small design agency based in United States. We’ve been crafting beautiful websites, launching stunning brands and making clients happy for years.

SSay Hello

Call us

+45 (0)4 79 25 37 98

Error in Section

No Page ID specified.

404!

Not Found

CUnder Construction

Apologies!!.. We are really working hard towards to fix the problem!!.. We will be get back you soon!!.. Keep in touch!!!..