10 May 2019

Cubesat Launch


Cubesat Launch

India to reportedly investigate Google over alleged Android abuse


More than 95 percent of the smartphones that ship in India run Android operating system, according to industry estimates. Now the Indian antitrust watchdog is convinced that the nation should investigate if Google is abusing the dominant position of its mobile operating system to hurt local rivals.

The Competition Commission of India (CCI), the local antimonopoly regulator, began looking at Google’s Android business in India last year after it received a complaint from unspecified people. In mid-April, the regulator decided that there was merit in the accusations and ordered its investigation unit to conduct a full-investigation, according to a report by Reuters, which cites unnamed sources.

The investigation, not the first of its kind, will take about a year to conclude and could see Google executives be asked to be summoned before the regulator, the news agency reported. We’ve reached out to Google for comment. The CCI has not publicly commented on the probe.

If found guilty, Google may be fined up to 10 percent of its local revenue or 300 percent of its net profits. Even as India has emerged as one of Google’s largest markets, the company makes relatively a tiny amount in the nation. It clocked $1.4 billion in revenue in India in the year that ended in March 2018, according to regulatory filings, compared to over $100 billion it generated globally in a comparable time period.

The specific accusations, as well as identity of those who filed the complaint, remains unclear. In a statement to Reuters, Google said that it was looking forward to working with the CCI to “to demonstrate how Android has led to more competition and innovation, not less.”

With the launch of this investigation, India is joining the EU, which continues to look at several businesses of Google — including Android — to ensure that the company is not abusing its dominant position in the market. Earlier this year, the EU regulators concluded that Google had forced its OEM partners to prebundle a number of apps including Google Search, Chrome browser, and Google Play Store on their Android handsets.

Following the verdict, which Google has appealed, the Android maker announced it will give users more choices for browsers and search engines.

India’s regulator has previously investigated Google’s search business and Apple’s partnerships with local carriers for sale of iPhones. Apple’s iOS has tiny market share in India, where most people have annual income of less than $2,000.


Read Full Article

15 Popular iPhone Apps That Offer Dark Mode Support

The 8 Best Linux Password Managers to Stay Secure


linux-password-managers

Concerns over privacy and security are one of the big reasons people use free and open source software. But today, safeguarding the data on your computer is only part of the challenge. How do we manage all the passwords for all the different accounts we create across the web?

Password managers are a great way to handle the issue. Here are the best Linux password managers you can trust to handle your passwords properly.

1. KeePass

KeePassXC password manager on Ubuntu Linux

KeePass stores all of your passwords in an encrypted database, which exists within a single file on your computer. You can access this database using a password, a key file, or both.

This database is portable, so you can access your passwords on any device that contains a copy. If you don’t create new accounts often, you can copy this file over manually. Or you can set up whichever Linux-friendly file syncing method works best for you.

KeePass began as a Windows app in 2003, and the interface hasn’t changed much since then. So while the functionality is there, the design can feel a bit long in the tooth. It’s not as intuitive as some of the newer web-based options around. But thanks to the app’s maturity and popularity, there are plenty of plugins that extend what KeePass can do.

There are many versions of KeePass available for Linux. KeePass is a port of the Windows app. KeePassX and KeePassXC are more Linux-friendly alternatives built using the Qt toolkit.

Download: KeePass (Free)

Download: KeePass X (Free)

Download: KeePass XC (Free)

2. GNOME Password Safe

GNOME Password Safe on Fedora Linux

I care a great deal about how well the apps I use integrate with the rest of the desktop environment. If you do too, and you use GNOME, then you know most options don’t fit in all that well. In that case, check out Password Safe.

Password Safe is about as simple as a desktop-based password manager can get. First, you create a safe that contains all of your passwords. Then you choose to protect this safe with a password, a key file, or both. Afterward, you enter your accounts and passwords. If this sounds familiar, that’s because Password Safe uses the same format as KeePass.

Password Safe removes most of the complexity of KeePass and most other options. This makes it a great first password manager for those of us who have never used such software before. On the other hand, you may find the app frustrating if it’s missing features you’ve grown accustomed to elsewhere.

As an added bonus, Password Safe’s interface scales down to fit mobile devices, namely the Purism Librem 5.

Download: GNOME Password Safe (Free)

3. Password Safe

Password Safe password manager on Ubuntu Linux

There is an unrelated open source Windows app that also goes by the name Password Safe. A beta version is available for Linux,

Password Safe uses a concept similar to KeePass. You can store passwords and usernames in one or more databases. The app makes sure to prevent sensitive data from swapping to disk, wipes temporary data in memory as quickly as possible, and doesn’t save your master passphrase directly. These are some of the methods password managers keep your passwords safe.

Password Safe is a more desktop agnostic app. It will look more at home on some non-GNOME desktops, such as Xfce and MATE.

Download: Password Safe (Free)

4. Password Gorilla

Password Gorilla password manager on Ubuntu Linux

If you like Password Safe but the beta isn’t working for you, there’s a compatible app that has already been around for years.

Password Gorilla is another cross-platform password manager that stores all of your accounts in one encrypted Password Safe database. Versions of Password Gorilla exist for Windows and macOS. Mobile versions don’t exist, but you can find compatible versions of Password Safe for Android and iOS.

Download: Password Gorilla (Free)

5. qMasterPassword

qMasterPassword on Fedora Linux

Don’t like the idea of a single file containing all of your passwords? qMasterPassword offers an alternative approach. This password manager asks you to create a single master password. Then it generates passwords for your accounts using the master password and the relevant website. Even if someone knows you use qMasterPassword, they can’t easily guess your login credentials without knowing the master password you used to generate them.

qMasterPassword is a Linux version of the Master Password algorithm. It is compatible with other implementations of that product, some of which are available for Android and iOS. As Qt-based software, qMasterPassword is a great app to use with KDE Plasma.

Download: qMasterPassword (Free)

6. QtPass

QtPass password manager on Ubuntu Linux

KeePass may be the most established option on this list, but that doesn’t mean it’s the only tool that caters to the more technical among us. Pass is a command line tool that stores each password inside of a separate GPG encrypted file.

Thanks to QtPass, you can adopt the pass approach to security without having to use the terminal. QtPass is a desktop tool that lets you manage your passwords without learning a single command. You can perform most of the same functions as the command-line version.

Download: QtPass (Free)

7. Bitwarden

Bitwarden password manager on Ubuntu Linux

The aforementioned options all exist offline. Bitwarden is an open source web service that syncs your passwords across all of your PCs and mobile devices. Versions exist for Linux, as well as Android and iOS. The available web browser extensions can also automatically enter stored passwords when you visit a website.

Bitwarden saves your passwords online, which is why your passwords are easily accessible across devices. On the downside, copies of your passwords exist online that someone could possibly steal. On the positive side, Bitwarden encrypts and hashes all data before it leaves your device.

Technically, someone can circumvent Bitwarden’s security, or they can get their hands on your master password. With offline options like KeePass, someone needs access to your computer to get your passwords.

In contrast to proprietary alternatives, Bitwarden’s code is openly available for others to review and audit. This offers greater peace of mind that the company is securing your data to the extent promised and that it isn’t doing anything fishy with the information you provide.

You can create an account and sync all of your passwords for free. A paid option adds 1GB of file storage, support for additional authentication methods such as YubiKey and FIDO U2F, and more.

Download: Bitwarden (Free)

8. Your Browser

Creating a master password in Firefox on Fedora Linux

Mozilla Firefox comes preinstalled with most popular versions of Linux. Alternatives like Google Chrome and Vivaldi are only a download away. All three can save your passwords for you and automatically enter them when you visit a site. They can also sync your passwords between multiple computers.

You don’t need a major cross-platform browser to enjoy these features. Linux-only browsers such as GNOME Web and Falkon can save your passwords too. Basically any Linux web browser will do.

No matter which web browser’s password manager you use, understand that this isn’t the most secure option. If you share your computer with anyone, unless they’re signed into a different user account, autofill can give them easy access to your web accounts. Some browsers do a decent job encrypting your passwords and requiring a master password, while others make them available in plain text. And if you choose to sync your passwords, then copies of them may exist online.

What About LastPass on Linux?

LastPass supports Linux. As do other commercial, web-based services such as Dashlane and 1Password. If a password manager works in Chrome or Firefox, chances are you can run it on Linux.

There are also a few older projects that still exist in your Linux app store, but haven’t seen an update in years. Such apps include Revelation and Universal Password Manager. If you happen to like either one, maybe you could be the person to breathe in new life.

Still not sure you need a password manager? Here are some pseudo-superpowers password managers can give you.

Read the full article: The 8 Best Linux Password Managers to Stay Secure


Read Full Article

The Google Home Commands Cheat Sheet


google-home-commands

Your Google Home is a hub of information, convenience, and fun. With just a few words, you can adjust your thermostat, play a game, or find out who starred in that movie. With so much information at your fingertips, it can be tough to remember everything your Google Home can do.

Unlock the "100+ Useful Google Home (and Google Assistant) Commands" cheat sheet!

This will sign you up to our newsletter

Enter your Email

That’s why we’ve assembled this Google Home commands cheat sheet with nearly 100 useful commands. Most of these commands work with Google Assistant on Android as well, so you don’t even need a Google Home device to take advantage of them.

While we’ve outlined basic commands below, Google Home has a lot more to offer. Make sure you’ve read our beginner’s guide to Google Home before diving in.

You can ask connected questions and the Assistant will understand. For instance, after Google provides the answer to your question “Who sings the song Careless Whisper?”, you can say “Play that song.”

Additionally, if you’re in the US, you can ask your Google Home to do multiple actions at once. Just say “and” between two commands. For example, you might say “Hey Google, what time is it in Sydney and what’s the weather there?”

Before each of these commands, you’ll need to say “OK Google” or “Hey Google” to wake up your device. However, if you enable the Continued Conversations feature in the Home app, you can add a follow-up command without saying the wake phrase.

The Google Home Commands Cheat Sheet

Command Action
Google Home Device Control
Help Get help using Google Home
Turn it up / Louder Raise the volume
Turn it down Lower the volume
Set volume to [1-11] Choose volume level
Mute Prevent your speaker from listening. You'll have to press the physical button to unmute it.
Stop Cancel the current action
Send feedback Provide your thoughts about Google Home
Basic Google Home Functions
Set alarm for [time] Set a single alarm for the time you choose
Set alarm for [time] every day of the week Set a recurring alarm
Cancel my alarm Cancel your existing alarm
Snooze Snooze a ringing alarm
Remind me to [task] on [day] at [time] Set a reminder for a specific time
Set a timer for [X] minutes Set a timer
Set a second timer for [X] minutes Set a second timer
How much time is left on my timer? Hear the remaining time on any timer
Pause timer Pause a running timer
Resume timer Resume a paused timer
Add [item] to my shopping list Add an item to your Google Home shopping list
What's on my shopping list? Hear the current contents of your shopping list
Buy [item] Order from Google Express
Talk to [action name] Interact with third-party Google Home skills
Food and Health Information
How much potassium is in a banana? Get information about food
How many calories are in [food]? Get more nutritional information
What is [medical condition]? Hear basic medical info
How do I make [dish]? Get a recipe to make anything
Fine me a [food] recipe Get a recipe for an ingredient you want to use up
Sports and Entertainment
What was the score of the [team] game? Hear the latest sports scores
What is the [team] record? See how your favorite sports team is doing
When are the [team] playing next? Check the next upcoming game
What actors are in [movie]? Get entertainment-related news
Who invented [thing]? Learn historical information
Who wrote [book]? Find out who wrote books. who directed movies, and more
What is [actor]'s most popular movie? Learn more about celebrities
Who is [person]? Find out what Google knows about a person
How old is [person]? Get information about famous figures
Calculations and Conversions
How many days until [holiday]? Count down to your favorite holidays
Count to [X] Google will count out loud to your number
What's [X divided by [Y]? Perform basic math
What is [X] percent of [Y]? Perform more math calculations
What's the cosine of [X]? Perform advanced math
How many [units] are in [other units] Convert currency, units of measure, and more
How many pesos in a dollar? Perform currency conversions
How many milligrams is [X] ounces? Convert units
Language
How do I spell [word]? Hear a word spelled aloud
How do you say [word/phrase] in [language]? Translate words and phrases
What is [foreign phrase] in English? Translate any language to your own
What does [word] mean? Get definitions for unknown words
Commute and Travel Details
How's my commute? Hear the estimated time to get to your work address
How's the traffic on the way to [location]? Get traffic data for any destination
How long will it take to walk to [place]? Find out how long it will take to reach a destination by any method
How far is [place] from here? Find out about specific distance
When is my next flight? Get the time for your next flight
Is my flight on time? Check whether your flight is on time or delayed
What's the status of [airline] [flight number]? Get details about any flight
How much is a flight to [place]? Get flight quotes
What's the capital of [country]? Hear geographical information
What time is it in [place]? Hear the local time anywhere
Calendar and To-Do
Play my daily briefing Includes the time, weather, and news
What's on my calendar for [day]? Get briefed on your first three events of the day
When is [holiday] this year? Get a specific date
Remember [thing] Store a quick note in Google Assistant's memory
What did I ask you to remember? Recall earlier notes
What/when is my next event? Hear info on your next scheduled Google Calendar meeting
News, Weather, and Local Info
Tell me the news Hear a digest of the latest news
What's the latest in [category]? Get news about a topic such as sports or technology
What's the weather? Hear the weather for your current location
What's the forecast for [day]? Get a weather summary for a specific day
What is [stock] trading at? Hear the current price of a given stock
How are the markets doing? Get a summary of the latest stock market news
What [businesses] are nearby? Find the closest restaurants, pharmacies, and more
What's the nearest [business]? Find nearby restaurants, hotels, and more
What is the phone number for the nearest [place]? Look up business phone numbers
Is [business] open now? Get opening hours for a specific place
Google Home Music and Media Commands
Play [song] | Play [album] | Play [artist] Start playing music from your default service
Play [music] on [music service] Play music from a service other than your default
Play music for [activity] Play music based on a mood, genre, or activity
Play the song that goes [lyrics] Play a song even if you don't know the title
Shuffle Toggle shuffling of music
Pause Pause your music
Resume Continue playing paused music
Skip Jump to the next song
Rewind [X] seconds Back up in a podcast or news briefing
Stop in [X] minutes Set a sleep timer
What's playing? Hear info on the current song, podcast, etc.
Play [podcast name] Start playing a chosen podcast
Listen to the latest episode of [podcast] Hear the newest episode of any podcast
Play at [X] speed Change podcast playback speed, such as 2x
Play [radio station] (on TuneIn) Hear a radio station by call sign, frequency, or similar
Play my [station] station on Pandora Play Pandora music (must link Pandora account in Google Home settings)
Play [audiobook] Listen to an audiobook from Google Play Books
Google Home Chromecast Commands
Turn on/off [Chromecast name] Toggle the power of a connected Chromecast
Play [music] on [Chromecast name] Start playing music on a connected Chromecast
Play on [Chromecast name] Start playing a YouTube video on your Chromecast
Play [show or movie] on [TV name] Play content from Netflix on your TV
Play/pause [Chromecast name] Halt or resume Chromecast playback
Stop [Chromecast name] End Chromecast media playback
Skip forward/back [X] minutes on [Chromecast name] Rewind or fast-forward what your Chromecast is playing
Mute/unmute [Chromecast name] Silence or resume Chromecast audio
Show [camera name] Show your smart camera's feed on your Chromecast
Show photos on my TV Use your Chromecast to show your Google Photos
Show me a picture of [thing] See a picture on your Chromecast display
Google Home Smart Home Commands
Turn on/off my lights Toggle smart lights
Set my lights to [X] percent Dim/brighten smart lights
Turn my lights [color] Change the color of your smart bulbs
What's the temperature inside? Find out about the indoors temperature
Set the temperature to [X] Control the climate via your Nest thermostat
Lock the front door Lock your smart locks
Broadcast [message] Send a message all other Google Home speakers in your home
Google Home Phone Commands
Read my replies Hear the latest messages from Messenger, WhatsApp, SMS, and more
Send a WhatsApp message Message via voice in WhatsApp (must link your account in the Home app)
Call [contact] Place a call through your Google Home
Hang up End the current call
Find my phone Ring your phone to help locate it
Bluetooth pairing Pair with Bluetooth
Fun Google Home Commands
Play Lucky Trivia Play a trivia game to challenge your knowledge
What are your Easter eggs? Hear some of Google Home's funny responses
What does [animal] sound like? Make Google imitate sounds
Sing a song Hear Google Assistant's hit new single
Tell me a story Listen to Google Asisstant recite a tale
Tell me a joke Google Assistant will make you laugh
Read a poem Hear Google Home wax eloquent with some poetry
Repeat after me: [phrase] Google Home will repeat whatever you say
Give me a random number between [X] and [Y] Get a randomly generated number
Roll a die Have Google Home roll a virtual die
Flip a coin Google Home will flip a virtual coin
What is your quest? Find out Google Assistant's driving force in life
Can you swim? Ask Google Assistant about herself
Talk to Eliza Speak with a virtual therapist, who really isn't much help
Up up, down down, left right, left right, B A, Start Get 30 extra lives
Beatbox Hear Google Home break it down
Mad Libs Play the classic word game with Google Assistant
Play the name game Google Assistant will come up with a rhyme for any name
Make me a sandwich See what she says!
Where's Waldo? Because Google Assistant knows everything
Surprise me Are you feeling lucky?
Miscellaneous Google Home Commands
Tune my instrument Hear notes to help get your instrument in tune
Play a [letter] note Hear a musical note
Where's my package? Hear the status of your shipped order

There’s More to Master With Google Home

Now, you have dozens of commands to try on your Google Home device. Hopefully they will help you make the most of your device and remember its most useful tricks. And if this isn’t enough, we’ve previously looked at some entertaining Google Home commands .

If you find yourself repeating the same commands every day, there’s another Google Assistant feature you should know about. It’s called Routines, and it allows you to create sets of actions that fire when you give a certain command or a specific time of the day passes. Check out our guide to Google Assistant routines to get started.

Read the full article: The Google Home Commands Cheat Sheet


Read Full Article

What Is Code-Signed Malware and How Do You Avoid It?


code-signed-malware

Code signing is the practice of cryptographically signing a piece of software so that the operating system and its users can verify that it is safe. Code signing works well, by and large. The majority of the time, only the correct software uses its corresponding cryptographic signature.

Users can download and install safely, and developers protect the reputation of their product. However, hackers and malware distributors are using that exact system to help malicious code slip past antivirus suites and other security programs.

How does code-signed malware and ransomware work?

What Is Code Signed Malware?

When software is code-signed, it means that the software carries an official cryptographic signature. A Certificate Authority (CA) issues the software with a certificate confirming that the software is legitimate and safe to use.

Better still, your operating system takes care of the certificates, code checking, and verification, so you don’t have to worry. For instance, Windows uses what is known as a certificate chain. The certificate chain consists of all the certificates needed to ensure the software is legitimate at every step of the way.

“A certificate chain consists of all the certificates needed to certify the subject identified by the end certificate. In practice, this includes the end certificate, the certificates of intermediate CAs, and the certificate of a root CA trusted by all parties in the chain. Every intermediate CA in the chain holds a certificate issued by the CA one level above it in the trust hierarchy. The root CA issues a certificate for itself.”

When the system works, you can trust software. The CA and code signing system require a huge amount of trust. By extension, malware is malicious, untrustworthy, and should not have access to a Certificate Authority or code signing. Thankfully, in practice, that is how the system works.

Until malware developers and hackers find a way around it, of course.

Hackers Steal Certificates From Certificate Authorities

Your antivirus knows that malware is malicious because it has a negative effect on your system. It triggers warnings, users report problems, and the antivirus can create a malware signature to protect other computers using the same antivirus tool.

However, if the malware developers can sign their malicious code using an official cryptographic signature, none of that will happen. Instead, the code-signed malware will walk through the front door as your antivirus and the operating system rolls out the red carpet.

Trend Micro research found that there is an entire malware market supporting the development and distribution of code-signed malware. Malware operators gain access to valid certificates which they use to sign malicious code. The following table shows the volume of malware using code signing to evade antivirus, as of April 2018.

trend micro code signed malware type table

The Trend Micro research found that around 66 percent of the malware sampled was code-signed. Furthermore, certain malware types come with more code signing instances, such as Trojans, droppers, and ransomware. (Here are seven ways to avoid a ransomware attack!)

Where Do Code Signing Certificates Come From?

Malware distributors and developers have two options regarding officially signed code. Certificates are either stolen from a Certificate Authority (directly, or for resale), or a hacker can attempt to mimic a legitimate organization and fake their requirements.

As you would expect, a Certificate Authority is a tantalizing target for any hacker.

It isn’t just hackers fueling the rise in code-signed malware. Allegedly unscrupulous vendors with access to legitimate certificates sell trusted code-signing certificates to malware developers and distributors, too. A team of security researchers from Masaryk University in the Czech Republic and Maryland Cybersecurity Center (MCC) discovered four organizations selling [PDF] Microsoft Authenticode certificates to anonymous buyers.

“Recent measurements of the Windows code signing certificate ecosystem have highlighted various forms of abuse that allow malware authors to produce malicious code carrying valid digital signatures.”

Once a malware developer has a Microsoft Authenticode certificate, they can sign any malware in an attempt to negate Windows security code-signing and certificate-based defense.

In other cases, rather than steal the certificates, a hacker will compromise a software build server. When a new software version releases to the public, it carries a legitimate certificate. But a hacker can also include their malicious code in the process. You can read about a recent example of this type of attack below.

3 Examples of Code-Signed Malware

So, what does code-signed malware look like? Here are three code-signed malware examples:

  1. Stuxnet malware. The malware responsible for destroying the Iranian nuclear program used two stolen certificates to propagate, along with four different zero-day exploits. The certificates were stolen from two separate companies—JMicron and Realtek—that shared a single building. Stuxnet used the stolen certificates to avoid the then newly-introduced Windows requirement that all drivers required verification (driver signing).
  2. Asus server breach. Sometime between June and November 2018, hackers breached an Asus server the company uses to push software updates to users. Researchers at Kaspersky Lab found that around 500,000 Windows machines received the malicious update before anyone realized. Instead of stealing the certificates, the hackers signed their malware with legitimate Asus digital certificates before the software server distributed the system update. Luckily, the malware was highly targeted, hard-coded to search for 600 specific machines.
  3. Flame malware. The Flame modular malware variant targets Middle Eastern countries, using fraudulently signed certificates to avoid detection. (What is modular malware, anyway?) The Flame developers exploited a weak cryptographic algorithm to falsely sign the code signing certificates, making it appear as if Microsoft had signed them off. Unlike Stuxnet which carried a destructive element, Flame is a tool for espionage, seeking out PDFs, AutoCAD files, text files, and other important industrial document types.

How to Avoid Code-Signed Malware

Three different malware variants, three different types of code signing attack.  The good news is that most malware of this type is, at least at the current time, highly targeted.

The flipside is that because of the success rate of such malware variants that use code signing to avoid detection, expect more malware developers to use the technique to make sure their own attacks are successful.

As well as this, protecting against code-signed malware is extremely difficult. Keeping your system and antivirus suite up to date is essential, avoid clicking on unknown links, and double-check where any link is taking you before following it.

Other than updating your antivirus, check our list of how you can avoid malware!

Read the full article: What Is Code-Signed Malware and How Do You Avoid It?


Read Full Article

5 Functional Programming Languages You Should Know


functional-programming-languages

If you spend any amount of time reading up on programming trends on the internet, you’ll have heard about functional programming. The term is thrown about fairly often, but what does it mean?

Even if you’re aware of what functional programming is, you may be unclear about which languages are best suited for it. After all, not all programming languages are created equal. While you can apply functional programming paradigms in many languages, there are still some where you’ll feel much more comfortable.

What Is Functional Programming?

If you have a background in mathematics, you have a head start on functional programming. This is because the functional programming paradigm treats computing like mathematical functions. If you don’t have a mathematical background, this could leave you feeling confused.

Basically, functional programming treats functions and data as immutable. You pass data into a function, and it generally returns that data transformed or some other type of data. In functional programming, the function should never change the original data or program state.

There is a similarity to the Unix philosophy that each program should do one thing well. A function shouldn’t touch various parts of your program. Instead, it should take its input and give you an output.

Ideally, functions should be pure whenever possible in functional programming. This means that given the same input, the function’s output will always remain the same.

Functional vs. Object-Oriented Programming

This is a dramatic departure from something like object-oriented programming. In object-oriented programming, you often have a base object with various methods dedicated to changing either data or state that are part of that object. A method may even alter data or state if not explicitly stated.

In practical programs, sometimes this makes sense. That said, it can make programs harder to maintain, as it’s not always clear what is altering state or data. Functional programming was originally used in academic environments, but can also help to prevent these sorts of problems.

1. JavaScript

JavaScript logo

Some programming languages allow functional programming while others either encourage or even enforce it. JavaScript falls in the first category. While you can use functional programming paradigms in the language, you can just as easily use an object-oriented approach.

That said, there are plenty of functional programming paradigms built into JavaScript. Take, for example, higher-order functions. These are functions that can take other functions as arguments.

JavaScript has several functions that work with arrays like map(), reduce(), filter(), and others, all of which are higher-order functions. This lets you chain them together to quickly do all manner of things with an array.

While early JavaScript had some issues with mutability, newer versions of the ECMAScript standard provide fixes. Instead of the catch-all var keyword for defining variables, you now have const and let. The first lets you define constants, as the name implies. The second, let, limits the scope of a variable to the function in which it is declared.

2. Python

Python logo

Like JavaScript, Python is a generalized language that you can use any number of programming paradigms with. Python may have its downsides, but functional programming isn’t one of them. There is even an introduction to functional programming in the official Python documentation.

To start, you’ll find many of the same map(), filter(), reduce(), and similar functions mentioned above built-in. As with JavaScript, these are higher-order functions as they take other functions as arguments. In Python, functional programming has an advantage in the form of the lambda keyword.

You can use lambda expressions in a few ways. One way to use it is as shorthand for simple functions. When assigned to a variable, you can call lambda expressions exactly as you would a standard Python function. The real advantage of lambda expressions comes when you use them as anonymous functions.

Anonymous functions work in JavaScript and other languages on this list as well. They come in especially handy when used with higher-order functions since you can define them on the spot. Without anonymous functions, you’d have to pre-define even simple additions as bespoke functions.

3. Clojure

Clojure programming language logo

Unlike JavaScript and Python, Clojure may not exactly be a household name, even among programmers. In case you’re not familiar, Clojure is a dialect of the Lisp programming language, which dates back to the late 1950s. This brings along with it a very specific way of doing things that happens to be perfect for functional programming.

Like other Lisp dialects, Clojure treats code as data. This means that the code can effectively alter itself. Unlike other Lisp dialects, Clojure runs on the Java platform and is compiled to JVM bytecode. This means it can work with Java libraries, whether they were written in Clojure or not.

Unlike previous languages on this list, Clojure is a functional programming language from the ground up. That means that it advocates immutability wherever possible, especially within data structures.

Clojure doesn’t expect all programs to be mathematically “provable,” but encourages using pure functions wherever possible.

4. Elm

Elm programming language logo

One of the newer languages on this list, Elm is a purely functional language initially designed by Evan Czaplicki in 2012. The language has gained popularity among web developers, specifically for creating user interfaces.

Unlike every prior entry on this list, Elm uses static type checking. This helps to ensure no runtime exceptions, with errors instead caught at compile time. This means less visible errors for users, which is a major plus.

The Elm compiler targets HTML, CSS, and JavaScript. In the same way that you can use Clojure to write programs that run on Java, you can write apps that use JavaScript libraries in Elm.

One major difference between Elm and other languages here is that you won’t find generic filter(), map(), and similar functions. Instead, these are defined by data type like List.map or Dict.map.

5. Haskell

Haskell programming language logo

Haskell is another statically typed, purely functional language. Unlike Elm, Haskell has been around for a while. The first version of the language was designed in 1990. The latest standard is Haskell 2010, while the next version is planned for 2020.

As we’ve already explored, Haskell’s purely functional nature means that by design, functions shouldn’t have side effects. This makes it well-suited to solving real-world problems despite functional programming’s roots in academia.

Despite its lack of mainstream popularity, Haskell has been employed in some widely used projects. The Xmonad window manager is written entirely in Haskell. Pandoc, which converts different types of markup to and from other formats also uses the language.

The standard map(), filter(), reduce(), and other higher-order functions are present, which should let you take concepts from JavaScript or Python to Haskell. If you want to learn more about the language, Learn You a Haskell for Great Good is a popular starting point.

Are You New to Programming?

Some of the above terms and languages may seem somewhat esoteric if you’re not yet a seasoned coder. That’s good, as knowing what you don’t know is one of the first steps in becoming a better learner.

Some of the languages listed above are better for beginners than others. Take a look at our list of the best programming languages for beginners. You’ll notice there is some crossover between the two lists.

Read the full article: 5 Functional Programming Languages You Should Know


Read Full Article

How to Use Chromecast: A Guide for Beginners

You Can Now Play Minecraft for Free in Your Browser


Minecraft is 10 years old, and to celebrate this milestone, Mojang has released Minecraft Classic for the web. This means you can play Minecraft in your web browser. You don’t need to download anything, and Minecraft Classic is completely free to play.

How to Play Minecraft for Free in Your Browser

Minecraft Classic has been available to play for free for many years. And this isn’t the first time it has been available to play in your web browser. However, Minecraft Classic was previously only available on Windows, Mac, and Linux, and required Java.

Now, you just need to point your browser at the Minecraft Classic website and you can play for free without the need to download anything. The only requirement seems to be a keyboard, so you can’t play on your smartphone or tablet. Sadly.

As the name suggests, Minecraft Classic isn’t the Minecraft of 2019. Instead, it’s the game as it existed in 2009. This means you’ll have to put up with a clunky user interface, be stuck with just 32 blocks to build with, and more bugs than the average rainforest.

Minecraft Classic only allows you to play in Creative mode, so there’s no Survival mode with enemies to fight off. There’s also no way to save your game. Still, you can invite up to nine friends to join your game just by sending them the link.

Minecraft Classic Is a Piece of Gaming History

Let’s not kid ourselves here; Minecraft Classic cannot compete with the current version of the game. Still, it’s free, and can be played in your web browser with no effort on your part. So you may as well take the opportunity to sample a piece of gaming history.

We covered Minecraft a lot in its early days, so if you’re new to the game you should check out our beginner’s guide to Minecraft (for latecomers). If, on the other hand, you’re a veteran you may be interested in learning how to create your own Minecraft mod.

Read the full article: You Can Now Play Minecraft for Free in Your Browser


Read Full Article

Smartphone shipments hit a five year low in North America


More dismal news from the smartphone number crunchers. New figures out of Canalys put the North American smartphone market at five year low for the first quarter of 2019. That’s…bad. But also, pretty inline with what we’ve been seeing globally. The market has stagnated, and while manufacturers aren’t in full on panic mode, there’s certainly cause for concern.

Shipments dropped from 44.4 million down to 36.4 million, marking an an 18 percent drop year over year for the first quarter. Canalys says it’s the steepest drop it’s recorded for the category, chalking some of the issues up to “a lackluster performance by Apple and the absence of ZTE.”

Apple is still the top of the heap, commanding 40 percent of the North American market with help from the sale of older discounted units. But Samsung managed to to tighten the gap on the back of a successful Galaxy S10 launch. The company grew by three percent for the year, up to 29.3 percent of the market.

LG, Lenovo and TCL rounded out the top five, with the latter two making pretty solid marketshare strides. The remainder of the market took a massive hit, however, with a 65 percent drop off in shipments. Analysts seem confident that 5G imminent arrival will help give the market a boost in coming quarters, but it’s going to be hard for manufacturers to maintain that momentum.


Read Full Article