Google aims to tackle Black Friday crush

Black Friday bargain hunters are being courted by Google, which wants them to try out its latest search facility.

The tech company has made it possible to see how busy shops and other popular destinations are, in real time. A search for a shop now delivers a status update – such as “a little busy” – and information about how long people typically spend at the location. Google says it should help users navigate “Black Friday swarms”.

The new live information facility is based on information sent from Google app users, who share their location data with the company.

At present, there is no way for businesses to opt out of the service beyond deliberately blocking mobile phone signals.

References:

flickr photo by Neon Tommy https://flickr.com/photos/neontommy/5453704401 shared under a Creative Commons (BY-SA) license


Facebook ‘made China censorship tool’

Facebook worked on special software so it could potentially accommodate censorship demands in China.

The social network refused to confirm or deny the software’s existence, but said in a statement it was “spending time understanding and learning more” about China. The Electronic Frontier Foundation, a group which campaigns for better privacy online, told the BBC the project sounded “extremely disturbing”.

Censorship concessions

Since 2009, the only way to access Facebook in China has been via a virtual private network software designed to “spoof” your real location and avoid local internet restrictions.

Facebook, which has 1.8 billion active users, is aggressively looking to expand in parts of the world beyond its existing markets.

And in China, it appears the site is at the very least considering making concessions to China’s notoriously tightly-monitored internet.

According to employees quoted anonymously by the New York Times’ reporter Mike Isaac, Facebook founder Mark Zuckerberg was questioned about the plans in an all-staff meeting earlier this summer.

“It’s better for Facebook to be a part of enabling conversation, even if it’s not yet the full conversation,” he is reported to have said while stressing it was early days.

Mr Zuckerberg recently spent time with China’s leader, Xi Jinping, as well as taking time to learn Mandarin.

 

References:

flickr photo by Sarah.Marshall https://flickr.com/photos/sarahmarshall/8408366593 shared under a Creative Commons (BY) license

 


Google investing in Snapchat

Google Capital added Snapchat to its list of investments as part of a brand refresh and website redesign.

Google Capital re-branded Friday as CapitalG. It was formed in 2014 to invest in more mature businesses. The goal, according to its website, is “to make returns-driven investments in leading companies around the world.”

An investment in Snapchat opens the door for a closer relationship with a buzzy startup that is expanding into several areas of interest for Alphabet.

Snapchat, which recently re-branded as Snap Inc., has raised more than $2 billion in funding and is widely rumored to be planning a public offering early next year at a valuation as high as $35 billion.

References:

http://money.cnn.com/2016/11/04/technology/google-snapchat-investment/index.html

flickr photo by AdamPrzezdziek https://flickr.com/photos/67683836@N02/16910572286 shared under a Creative Commons (BY-SA) license

 


VERIFICATION vs VALIDATION

Criteria Verification

Validation

Definition The process of evaluating work-products (not the actual final product) of a development phase to determine whether they meet the specified requirements for that phase. The process of evaluating software during or at the end of the development process to determine whether it satisfies specified business requirements.
Objective To ensure that work products meet their specified requirements. To demonstrate that the product fulfills its intended use when placed in its intended environment.
Question Are we building the product right? Are we building the right product?
Evaluation Items Plans, Requirement Specs, Design Specs, Code, Test Cases The actual product/software.
Activities
  • Reviews
  • Walkthroughs
  • Inspections
  • Testing

It is entirely possible that a product passes when verified but fails when validated.

Example: A product is built as per the specifications but the specifications themselves fail to address the user’s needs.

References:

http://softwaretestingfundamentals.com/verification-vs-validation/

flickr photo by rosefirerising https://flickr.com/photos/rosefirerising/16319223902 shared under a Creative Commons (BY-NC-ND) license


User interface design

User Interface (UI) Design focuses on anticipating what users might need to do and ensuring that the interface has elements that are easy to access and understand.

Best Practices for Designing an Interface

Everything stems from knowing your users. Once you know about your user, make sure to consider the following when designing your interface:

ui1

ui2

ui3

 

References:

https://www.usability.gov/what-and-why/user-interface-design.html

flickr photo by ▓▒░ TORLEY ░▒▓ https://flickr.com/photos/torley/1085477446 shared under a Creative Commons (BY-SA) license


Software maintenance

Software maintenance stands for all the modifications and updations done after the delivery of software product.

Why modifications are required?

  • Market Conditions– Policies, which changes over the time, and newly introduced constraints like.
  • Client Requirements– Customer may ask for new features or functions in the software.
  • Host Modifications– If any of the hardware and/or platform of the target host changes, software changes are needed to keep adaptability.

Types of maintenance

  • Corrective Maintenance– This includes modifications and updations done in order to correct or fix problems, which are either discovered by user.
  • Adaptive Maintenance– It’s applied to keep the software product up-to date and tuned to the ever changing world of technology and business environment.
  • Perfective Maintenance– Modifications and updates done in order to keep the software usable over long period of time.
  • Preventive Maintenance– Modifications and updations to prevent future problems of the software.

Cost of Maintenance

The cost of maintenance is high. The cost of maintenance is as high as 67% of the cost of entire software process cycle.

maintenance_cost_chart

 

References:

https://www.tutorialspoint.com/software_engineering/software_maintenance_overview.htm

flickr photo by Sean MacEntee https://flickr.com/photos/smemon/4589979488 shared under a Creative Commons (BY) license

 

 


Micro Bit mini-computer

The Micro Bit mini-computer is to be sold across the world and enthusiasts are to be offered blueprints showing how to build their own versions.

The BBC says they encourage children, especially girls, to code

What is a Micro Bit?

The Micro Bit is a palm-sized circuit board with an array of 25 LED lights – that can be programmed to show letters, numbers and other shapes – and a Bluetooth chip for wireless connectivity.

Rather than enter code directly into the computer, owners instead write their scripts in a choice of four programming languages via web-based tools on a PC, or via an app on a tablet or smartphone.

Once written, the compiled scripts must be transferred to the Micro Bit, which then functions as a standalone device that can be used to flash messages and record movements among other tasks.

A new feature makes peer-to-peer communications possible, meaning one Micro Bit can now transmit data to another, opening up further possibilities.

 

References:

http://www.bbc.com/news/technology-37682405

flickr photo by Timitrius https://flickr.com/photos/nox_noctis_silentium/2830741506 shared under a Creative Commons (BY-SA) license

 


Open source software

Open source software is software with source code that anyone can inspect, modify, and enhance.

Open source software VS other types of software

Some software has source code that only the person, team, or organization who created it can modify. People call this kind of software “proprietary” or “closed source” software. Only the original authors of proprietary software can legally copy, inspect, and alter that software.

Open source software is different. Its authors make its source code available to others who would like to view that code, copy it, learn from it, alter it, or share it.

Is it only important to computer programmers?

No, Open source technology and open source thinking both benefit programmers and non-programmers. Because early inventors built much of the Internet itself on open source technologies, anyone using the Internet today benefits from open source software.

Why do people prefer using open source software?

  • Control: have more control over that kind of software.
  • Training: it helps them become better programmers. Because open source code is publicly accessible, students can easily study it as they learn to make better software.
  • Security: it is consider more secure and stable than proprietary software.
  • Stability: proprietary software for important, long-term projects.

 

Does “Open source” just mean something is free of charge?

No, Open source software programmers can charge money for the open source software they create or to which they contribute.

References:

https://opensource.com/resources/what-open-source

flickr photo by phradaka https://flickr.com/photos/27316226@N02/3000888100 shared under a Creative Commons (BY-NC-ND) license

 


Software Implementation

A product software implementation method is a systematically structured approach to effectively integrate a software based service or component into the workflow of an organizational structure or an individual end-user.

Challenges faced while implementing the software:

  • Code-reuse– Programming interfaces of present-day languages are very sophisticated and are equipped huge library functions. There are huge issues faced by programmers for compatibility checks and deciding how much code to re-use.
  • Version Management– Every time a new software is issued to the customer, developers have to maintain version and configuration related documentation. This documentation needs to be highly accurate and available on time.
  • Target-Host– The software program, which is being developed in the organization, needs to be designed for host machines at the customers end. But at times, it is impossible to design a software that works on the target machines.

References:

https://en.wikipedia.org/wiki/Product_software_implementation_method#Software_customization_and_Business_Process_Redesign

https://www.tutorialspoint.com/software_engineering/software_implementation.htm


Software testing – what kinds of testing?

Software Testing Types:

  • Black box testing: Tests are based on requirements and functionality.
  • White box testing: based on knowledge of the internal logic of an application’s code.
  • Unit testing: Testing of individual software components or modules.
  • Incremental integration testing: Bottom up approach for testing.
  • Integration testing: Testing of integrated modules to verify combined functionality after integration.
  • Functional testing: This type of testing ignores the internal parts and focus on the output is as per requirement or not.
  • System testing: Entire system is tested as per the requirements.
  • End-to-end testing: involves testing of a complete application environment in a situation that mimics real-world use, using network communications, or interacting with other hardware, applications, or systems if appropriate.
  • Sanity testing: Testing to determine if a new software version is performing well enough to accept it for a major testing effort.
  • Regression testing: Testing the application as a whole for the modification in any module or functionality.
  • Acceptance testing: Normally this type of testing is done to verify if system meets the customer specified requirements.
  • Load testing: Its a performance testing to check system behavior under load.
  • Stress testing: System is stressed beyond its specifications to check how and when it fails.
  • Performance testing: Term often used interchangeably with ‘stress’ and ‘load’ testing.
  • Usability testing: User-friendliness check.
  • Install/uninstall testing: Tested for full, partial, or upgrade install/uninstall processes on different operating systems under different hardware, software environment.
  • Recovery testing: Testing how well a system recovers from crashes, hardware failures, or other catastrophic problems.
  • Security testing: Can system be penetrated by any hacking way.
  • Compatibility testing: Testing how well software performs in a particular hardware/software/operating system/network environment and different combination s of above.
  • Comparison testing: Comparison
    Continue reading "Software testing – what kinds of testing?"