Mobile Monitoring Solutions

Search
Close this search box.

Ensemble Methods in One Picture

MMS Founder
MMS RSS

Article originally posted on Data Science Central. Visit Data Science Central

Ensemble methods take several machine learning techniques and combine them into one predictive model. It is a two step process: 

  1. Generate the Base Learners: Choose any combination of base learners, based on accuracy and diversity. Each base learner can produce more than one predictive model, if you change variables such as case weights, guidance parameters, or input space partitions.
  2. Combine Estimates from the Base Learners. The result is a computational “average” of sorts (which is much more complex than the regular arithmetic average).

References

Lior, R.  (2019). Ensemble Learning: Pattern Classification Using Ensemble Methods (Second Edition). World Scientific.

Seni, G. & Elder, J. (2010). Ensemble Methods in Data Mining: Improving Accuracy Through Combining Predictions. 

Morgan & Claypool Publishers.

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Q&A with Akara Sucharitakul on Squbs: Akka Streams & Akka HTTP for Large-Scale Production Deployment

MMS Founder
MMS RSS

Article originally posted on InfoQ. Visit InfoQ

Application requirements have changed dramatically in the past few years. Applications handling gigabytes of data with response time in seconds are a thing of the past. Today, users expect a sub-second response time and the amount of data is measured in petabytes. Hence, the old and inefficient approaches to building software are being replaced by the reactive way of programming.

Squbs (rhymes with “cubes”), an open-source project enabling standardization and operationalisation of Akka applications on a large scale, adheres to the reactive principles, allowing applications to process billions of transactions per day with minimal resource consumption while being more resilient to failure.

It is an asynchronous programming model which uses streams as the core of the application with all input and output considered as streams of events. Squbs is a good fit for use cases which involve collecting and processing large amounts of data in near real time as well as for a number of heavy-duty data processing and orchestration applications.

InfoQ recently interviewed Akara Sucharitakul, principal member of Technical Staff at PayPal and the Squbs project’s founder, about the problems Squbs solves and the reception so far.

InfoQ: What are some ideal use cases for which Squbs fits the bill?

Akara Sucharitakul: Squbs can be used for just about any back-end and even some front-end use cases. So it is better to start with what is not an ideal use case. I’d say, if you want a CRUD service that just fronts a database and reads and writes from those, especially synchronous databases, Squbs won’t buy you much. The cost of learning a new programming paradigm plus the cost of dealing with the synchronous interfaces from an otherwise asynchronous system outweighs any performance gains you’ll get from a CRUD service, of course, unless you already have good expertise with this programming model.

The end-to-end streaming model added to Squbs 0.9 really promotes its fast data-streaming use cases. In this sense, Squbs has been used very successfully as both data collectors collecting vast amounts of data from the internet as well as processing very large data streams event by event in pseudo-real time. But that is just one side where Squbs fits like a glove. There are many other heavy-duty data processing and orchestration applications that benefit from the asynchronous nature of Squbs, especially with the integration of Akka HTTP allowing making service requests in a pure asynchronous fashion and using minimal resource overhead as well as adhering strictly to the scheduling model laid out by Akka.

Moreover, we see an increasing number of applications using streaming coupled with event processing to update the data stores, leading us to modern application designs with event sourcing and CQRS in a distributed fashion.

InfoQ: How has the feedback been from developers who have used Squbs to build their microservices?

Sucharitakul: Let me answer this question in two angles. First what has been the feedback in terms of developer experience using Squbs, and second is the feedback in terms of the resulting work. To answer the first part, we have to admit that asynchronous programming is an alien beast for traditional developers used to imperative programming. You have to re-learn programming concepts, unlearn what you’ve learned 20 years ago to be the right way of development, and learn new ways inconceivable 20 years ago. So training, reinforcement, and support becomes a very important factor. It is truly a people problem. And there may be developers that never manage to make this jump. Once developers get used to this new paradigm, we found them generally more productive, with less bugs and far less code to maintain for the same functionality.

For the second part of the answer, the resulting work has been nothing but phenomenal. All applications using Squbs provided feedback that they achieve a much higher level of resiliency in production, to the point it gets boring. Unless the system is otherwise faulty, the applications just keep running. On top of this, we generally see about 50% to 80% savings in one way or the other. One use case reported 80% cut in processing times, but more often applications report needing about 80% less compute resources to process the same amount of traffic. That generally means cutting 80% of the infrastructure cost.

So in general, despite developers reporting initial difficulties, we have very happy developers owning the end result of their hard work.

InfoQ: Since Squbs is built on top of the Akka toolkit, do you recommend any best practices to follow while integrating with Akka/Squbs?

Sucharitakul: Yes, but this could be a very long answer. There is a whole list of practices, even rules we give developers during training. Common ones are buzz-phrases like “immutable first” or “blocking is a crime.” But there are many more. We’ll publish the training modules for Squbs on Github soon. The first chapter will talk about many of these dos and don’ts.

Beyond the basics, I can think about some guidelines around streams and actors. To get to the point, unless otherwise justified, the backbone of your application should sit on streams, using actors as the periphery. While one can argue that streams are executed on actors and in Squbs terms they are always wrapped in actors, we do not think about applications the same way. An system takes input, processes data, and creates output. The core of the application interfacing with the integration points should, as far as applicable, always be streams. Actors are still very useful for holding state and as general purpose components that deal with the non-streaming aspects of the application including being one of the modes for communicating across multiple streams.

More information can be found on the project’s GitHub repo.

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Gremlin Announce Free Tier for Their Chaos Experimentation Platform

MMS Founder
MMS RSS

Article originally posted on InfoQ. Visit InfoQ

The Gremlin team have announced “Gremlin Free“, which provides the ability to run chaos engineering experiments on a free tier of their failure-as-a-service SaaS platform. The current version of the free tier allows the execution of shutdown and CPU attacks on a host or container, which can be controlled via a simple web-based user interface, API or CLI.

At the end of 2017 the Gremlin team announced the first release of their chaos experimentation SaaS product that supported the coordination of multiple attacks on hosts and the associated infrastructure. In 2018 application-level failure injection (ALFI) was also added, which supported running attacks on individual application services or functions. One of the primary attacks throughout the evolution of the product has been the shutdown of instances, which was partly inspired by the Netflix Chaos Monkey — one of the first chaos engineering tools within the cloud computing domain.

The Gremlin team have argued that although the Chaos Monkey tool is useful, it does require time to learn how to safely operate this. The original tool also only supported AWS (although additional tooling has emerged that offers similiar instance shutdown abilities within Azure and Google Cloud Platform). With the launch of Gremlin Free, the Gremlin team are aiming to reduce these barriers to running chaos experiments, and faciliate teams in quickly seeing the value from doing so.

For engineers looking to explore the new free tier, Tammy Butow, principal SRE at Gremlin, has created a “Shutdown Experiment Pack” that is available on the Gremlin website. This provides a detailed walkthrough for running five chaos experiments that shutdown cloud infrastructure hosts and containers on AWS, Azure, and GCP (for which cloud vendor accounts are required), and also shutdown containers running locally with Docker.

InfoQ recently sat down with Lorne Kligerman, director of product, and discussed the motivations and future plans with Gremlin Free.

InfoQ: Hi Lorne, and thanks for joining us. Can I ask what the motivation was for releasing Gremlin Free?

Lorne Kligerman: There were a few motivations. The first is simple: we want democratize the practice of chaos engineering to further our mission of making the internet more reliable for everyone. People are interested in chaos engineering, but existing solutions don’t provide the safety, security, and user interface to make it easy to get started.

Another reason is that we want people to do the right thing for their end users, by experiencing the value and impact of chaos engineering first hand. Gremlin Free will allow anyone to quickly sign up, install our client, run an experiment, and observe the results.

In going through this exercise (which includes working with your existing tools and monitoring) the results you see — either validating the resiliency of your system or uncovering a bug — will increase the maturity of your organization.

There is also the option to unlock the full Gremlin suite.

InfoQ: How does the Gremlin Free SaaS offering compare with, say, running my own Chaos Monkey and associated tooling?

Kligerman: This goes back to the first question, where the awareness of chaos engineering comes from various open source solutions, including Chaos Monkey. While open source is a great thing, the cost of setting something up and keeping it up and running is high. Chaos Monkey specifically isn’t easy to use, as it only works on AWS and only provides only the attack type of randomly shutting down VMs. (Fun fact is that our CEO Kolton actually built Netflix’s second generation of failure injection tooling).

Gremlin provides a full SaaS offering, which includes a simple UI along with easy installation. It also offers over a dozen attacks, from simulating CPU spikes to disks filling up to injecting network latency. Whether using the UI, API, or CLI, you always have quick access to a “Halt attack” button, that quickly stops all attacks and puts your system back in a healthy state. From the beginning, we’ve prioritized simplicity, safety, and security.

Finally, we want to distance ourselves from the idea of randomly breaking things. There is a time and place for that — but what really drives value is the concept of a thoughtfully planned out experiment, where you start with a small blast radius and increase it over time. We believe in forming a hypothesis, and then running the experiment to learn about how the system behaves. From there, we can scale up the impact of the experiment as our confidence in our system grows.

So to your question about Gremlin Free specifically. Part of our thought process was basically to give away a better Chaos Monkey. It has the same UI as our enterprise product, can run on any cloud or bare metal, and offers two attacks: Shutdown (Chaos Monkey) as well as CPU.

InfoQ: How do you see Gremlin’s platform evolving? We’re seeing increasing talk about the importance of observability, particularly in relation to complex distributed systems, and so would Gremlin consider building a related product or providing integration with existing tooling?

Kligerman: We plan to stick to our core competency and not build out a monitoring solution. There are already tons of them out there that do a great job. We have an existing integration with Datadog, we’re talking to the folks at New Relic and Dynatrace, and Charity Majors at Honeycomb is super friendly and spoke at our conference last year. So yes, we want to build out strong integrations with all of these players, and agree that observability is crucial to chaos engineering.

In terms of the future of the Gremlin platform, in some ways what we’ve already built is advanced and ahead of market — we launched ALFI (Application-Level Fault Injection) last year for running more granular experiments at the application and request level (which works on serverless) that the market is now catching up to.

InfoQ: There are quite a few foundations gaining popularity, or emerging — e.g. the CNCF, and the new Continuous Delivery Foundation — and so how do you see Gremlin’s relationship to these?

Kligerman: We’re an active member of the CNCF, and it’s important for us to be a part of the community as much as possible. The new CD foundation is interesting, because we are doing some work in that space and believe strongly that to get the maximum value out of chaos engineering, it should be automated and often built into your CI/CD pipeline. Look out for some related announcements soon!

Access to Gremlin Free requires sign-up via the Gremlin website. There is extension documentation on the product, and additional help is available via the Gremlin Slack Chaos Engineering #support channel.

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Deep Learning for Speech Synthesis of Audio from Brain Activity

MMS Founder
MMS RSS

Article originally posted on InfoQ. Visit InfoQ

Research teams use deep learning neural networks to synthesize speech from electrical signals recorded in human brains, to help people with speech challenges.

In three separate experiments, research teams used electrocorticography (ECoG) to measure electrical impulses in the brains of human subjects while the subjects listened to someone speaking, or while the subjects themselves spoke. The data was then used to train neural networks to produce speech sound output. The motivation for this work is to help people who cannot speak by creating a brain-computer interface or “speech prosthesis” that can directly convert signals in the user’s brain into synthesized speech sound.

The first experiment, which was run by a team at Columbia University, used data from patients undergoing treatment for epilepsy. The patients had electrodes implanted in their auditory cortex, and ECoG data was collected from these electrodes while the patients listened to recordings of short spoken sentences. The researchers trained a deep neural-network (DNN) using Keras and Tensorflow using the ECoG data as the input and a vocoder/spectrogram representation of the recorded speech as the target. To evaluate the resulting audio, researchers asked listeners to listen to reconstructed digits and report what they heard; the best model achieved 75% accuracy.

A second team, led by Professor Tanja Schultz of the University Bremen in Germany, gathered data from patients undergoing craniotomies. The patients were shown single words, which they read aloud while their ECoG signals were recorded. The spoken audio was also recorded and converted to a spectrogram. Then a densely-connected convolutional network (or DenseNet) was trained to convert the brain signals into spectrograms. A WaveNet vocoder was then used to convert spectrograms into audible speech. To evaluate the synthesized speech, the researchers used an algorithm called short-time objective intelligibility (STOI) to measure the quality of the speech. The scores ranged from 30% to 50%.

Finally, a third team, led by Edward Chang of the University of California, also used data from patients who read aloud while ECoG signals were recorded. This team used the approach of using two long short-term memory (LSTM) networks. The first learned a mapping from the brain signals to an “intermediate articulatory kinematic representation” that models the physical behavior of a speaker’s vocal tract. The second LSTM learned a mapping from the output of the kinematic representation to actual audio. This model allowed the researchers to synthesize speech from brain activity recorded when the patient only pantomimed speaking, without actually making sound. Using Amazon Mechanical Turk (https://www.mturk.com/), the researchers found listeners who, after hearing a synthesized sentence, selected from multiple choice answers to identify the sentence they heard. The median percentage of listeners who correctly identified each sentence was 83%.

There is still a long way to go before this technology can become a practical working prosthesis. For starters, all methods used data collected electrodes implanted in the brains of patients whose skulls were opened for brain surgery. And while Chang’s group did demonstrate the synthesis of speech from signals generated by silent pantomime, many users who might need such a prosthesis may not be able to control their vocal tract well enough to do even that.
 

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Choosing from Popular Python Web Frameworks

MMS Founder
MMS RSS

Article originally posted on Data Science Central. Visit Data Science Central

This article delves in some of the widespread Python web frameworks and what makes them popular today.

Python is one of the most popular and versatile programming languages. There are thousands of Python packages, and these allow you to extend Python capabilities to any domain,be it web development, Internet of Things (IoT), artificial intelligence, or machine learning, and scientific computing. We can work with many different web frameworks and packages to easily build simple and complex RESTful Web APIs with Python, and we can combine these frameworks with other Python packages.

Popular Python Web Frameworks

We can leverage our existing knowledge of Python and its web frameworks to code the different pieces of our RESTful Web APIs and their ecosystem. Python makes it easy to create RESTful Web APIs.Here are some of the ideal web frameworks to go for:

Full-Stack Framework

This framework offers everything that a developer might need during his course of developing an application. It offers various functionalities like web service, data management, data storage, templates, and form generation and validation. Here are two popular Full-stack frameworks:

1.  Django

If we want to develop an app which interacts with a RESTfulAPI to perform CRUD operations, we can consider a web framework which has ORM, uses the simplest possible relational database, avoids complex installations or configurations and is less time-consuming. Django Rest Framework (DRF) will allow us to easily accomplish this task and start making HTTP requests to our RESTful web service.Django is a full-stack Python framework perfect for quick development of apps. It comes with numerous features; here are some of the best ones:

  • Open source
  • Object-Relational Mapping (ORM)
  • Follows the don’t repeat yourself principle
  • Minimum configuration
  • Supports databases like MySQL, PostgreSQL, SQLite, and Oracle

2.  Pyramid

Pyramidis another favorite full-stack web framework which has replaced the Pylons web framework. It has the ability to work with applications of all sizes. Pyramid offers easy maintenance of the code for the APIs which does not require ORM to be configured. Some of Pyramid’ssignificant features include:

  • Open source
  • Works in a simplified manner
  • Swift development
  • Single-file applications
  • Predicators

Microframework

A microframework, as its name suggests, is a minimalistic web framework which offers only a few functionalities. Unlike the full-stack framework, microframework is lightweight and requires the developer to add the additional requirements manually. Flask and Bottle are two of the most commonly used microframework. Here’s a brief look into it:

1.  Flask

Flask, inspired by the Sinatra Ruby framework, is a microframeworkavailable under the BSD license. It requires a Jinja2 template and Werkzeug WSGI toolkit and can use any kind of extensions required. When it comes to Flask, the advantages are many; some of them are as follows:

  • Lightweight
  • Modular and adaptable
  • Built-in fast debugger
  • Unicode-based
  • Support available for unit testing
  • Secure cookies support

2.  Bottle

Bottle is amicro-framework, which is fast and simple. With a built-inHTTP development server, Bottle is ideal for small web apps and implements everything in a single source file. A developer can work closely with the hardware when working with Bottle. This is one of its biggest advantages; other advantages include:

  • Perfect for prototyping
  • Full support formako, jinja2, and cheetah and various other databases
  • No dependencies other than Python Standard Library
  • Works best for simple apps
  • Ideal for learning web framework organization

Asynchronous Framework

This framework is perfect for high-performance applications. It supports high concurrency and is one of the most popular frameworks today. Tornado and Growler are some of the trending asynchronous frameworks to opt for. Here’s a look at both of them:

1.  Tornado

Originally developed forFriendFeed, acquired by Facebook in 2009, Tornado is an asynchronous Python web framework that solves the C10k issue (can handle more than ten thousand concurrent connections). Like Django and Bottle, Tornado is swift, optimized, and offers ones of the best ways to structure the applications. Tornado’s main features are:

  • Real-time services
  • High performance
  • Dealing with huge request numbers over a small timeframe
  • Diverse apps
  • Access to Python’s extensive data libraries

2.  Growler

Growler is another asynchronous framework and is inspired by the NodeJS and the Express/Connect frameworks. It is actually a microframework written on top of Python’sasyncio library. It uses a single application object and a series of middleware to process HTTP requests and is a top choice among the Python frameworks. Some of Growler’s prominent features include:

  • Support for open source packages
  • Swift
  • Easy to see program flow
  • Great for implementing complex applications
  • Links the asyncio server to your project’s middleware

This sums up our list of the popular Python web frameworks. There are many more frameworks that you can look at and experiment with. Each of these comes with its own distinct features.You can comparethem to find the one that best suits your needs.

If this article has you intrigued you about the various web frameworks for Python, you can explore Gaston C. Hillar’s Hands-On RESTful Python Web Services – Second Edition to explore the best tools and techniques to create a lightweight, maintainable, and scalable Python web services. Hands-On RESTful Python Web Services – Second Edition will cover the best tools you can use to build engaging web services and show you how to develop RESTful APIs using the most popular Python frameworks and all the necessary stacks with Python, combined with related libraries and tools. 

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


All About Using Jupyter Notebooks and Google Colab

MMS Founder
MMS RSS

Article originally posted on Data Science Central. Visit Data Science Central

Introduction

Interactive notebooks are experiencing a rise in popularity. How do we know? They’re replacing PowerPoint in presentations, shared around organizations, and they’re even taking workload away from BI suites. Today there are many notebooks to choose from Jupyter, R Markdown, Apache Zeppelin, Spark Notebook and more. There are kernels/backends to multiple languages, such as Python, Julia, Scala, SQL, and others. Notebooks are typically used by data scientists for quick exploration tasks.

In this blog, we are going to learn about Jupyter notebooks and Google colab. We will learn about writing code in the notebooks and will focus on the basic features of notebooks. Before diving directly into writing code, let us familiarise ourselves with writing the code notebook style!

 

The Notebook way

Traditionally, notebooks have been used to document research and make results reproducible, simply by rerunning the notebook on source data. But why would one want to choose to use a notebook instead of a favorite IDE or command line? There are many limitations in the current browser-based notebook implementations, but what they do offer is an environment for exploration, collaboration, and visualization. Notebooks are typically used by data scientists for quick exploration tasks. In that regard, they offer a number of advantages over any local scripts or tools. Notebooks also tend to be set up in a cluster environment, allowing the data scientist to take advantage of computational resources beyond what is available on her laptop, and operate on the full data set without having to download a local copy.

Jupyter Notebooks

The Jupyter Notebook is an open source web application that you can use to create and share documents that contain live code, equations, visualizations, and text. Jupyter Notebook is maintained by the people at Project Jupyter.

Jupyter Notebooks are a spin-off project from the IPython project, which used to have an IPython Notebook project itself. The name, Jupyter, comes from the core supported programming languages that it supports: Julia, Python, and R. Jupyter ships with the IPython kernel, which allows you to write your programs in Python, but there are currently over 100 other kernels that you can also use.

Why Jupyter Notebooks

Jupyter notebooks are particularly useful as scientific lab books when you are doing computational physics and/or lots of data analysis using computational tools. This is because, with Jupyter notebooks, you can:

  • Record the code you write in a notebook as you manipulate your data. This is useful to remember what you’ve done, repeat it if necessary, etc.
  • Graphs and other figures are rendered directly in the notebook so there’s no more printing to paper, cutting and pasting as you would have with paper notebooks or copying and pasting as you would have with other electronic notebooks.
  • You can have dynamic data visualizations, e.g. animations, which is simply not possible with a paper lab book.
  • One can update the notebook (or parts thereof) with new data by re-running cells. You could also copy the cell and re-run the copy only if you want to retain a record of the previous attempt.

Google Colab

Colaboratory is a free Jupyter notebook environment that requires no setup and runs entirely in the cloud. With Colaboratory you can write and execute code, save and share your analyses, and access powerful computing resources, all for free from your browser.

Why Google Colab

As the name suggests, Google Colab comes with collaboration backed in the product. In fact, it is a Jupyter notebook that leverages Google Docs collaboration features. It also runs on Google servers and you don’t need to install anything. Moreover, the notebooks are saved to your Google Drive account.

Some Extra Features

1. System Aliases

Jupyter includes shortcuts for common operations, such as ls and others.

2. Tab-Completion and Exploring Code

Colab provides tab completion to explore attributes of Python objects, as well as to quickly view documentation strings.

3. Exception Formatting

Exceptions are formatted nicely in Colab outputs

4. Rich, Interactive Outputs

Until now all of the generated outputs have been text, but they can be more interesting.

5. Integration with Drive

Colaboratory is integrated with Google Drive. It allows you to share, comment, and collaborate on the same document with multiple people:

Differences between Google Colab and Jupyter notebooks

1. Infrastructure
Google Colab runs on Google Cloud Platform ( GCP ). Hence it’s robust, flexible

2. Hardware
Google Colab recently added support for Tensor Processing Unit ( TPU ) apart from its existing GPU and CPU instances. So, it’s a big deal for all deep learning people.

3. Pricing
Despite being so good at hardware, the services provided by Google Colab are completely free. This makes it even more awesome.

4. Integration with Google Drive
Yes, this seems interesting as you can use your google drive as an interactive file system with Google Colab. This makes it easy to deal with larger files while computing your stuff.

5. Boon for Research and Startup Community
Perhaps this is the only tool available in the market which provides such a good PaaS for free to users. This is overwhelmingly helpful for startups, the research community and students in deep learning space

Working with Notebooks — The Cells Based Method

Jupyter Notebook supports adding rich content to its cells. In this section, you will get an overview of just some of the things you can do with your cells using Markup and Code.

Cell Types

There are technically four cell types: Code, Markdown, Raw NBConvert, and Heading.

The Heading cell type is no longer supported and will display a dialogue that says as much. Instead, you are supposed to use Markdown for your Headings.

The Raw NBConvert cell type is only intended for special use cases when using the nbconvert command line tool. Basically, it allows you to control the formatting in a very specific way when converting from a Notebook to another format.

The primary cell types that you will use are the Code and Markdown cell types. You have already learned how code cells work, so let’s learn how to style your text with Markdown.

Styling Your Text

Jupyter Notebook supports Markdown, which is a markup language that is a superset of HTML. This tutorial will cover some of the basics of what you can do with Markdown.

Set a new cell to Markdown and then add the following text to the cell:

When you run the cell, the output should look like this:

If you would prefer to bold your text, use a double underscore or double asterisk.

Headers

Creating headers in Markdown is also quite simple. You just have to use the humble pound sign. The more pound signs you use, the smaller the header. Jupyter Notebook even kind of previews it for you:

Then when you run the cell, you will end up with a nicely formatted header:

Creating Lists

You can create a list (bullet points) by using dashes, plus signs, or asterisks. Here is an example:

Code and Syntax Highlighting

If you want to insert a code example that you don’t want your end user to actually run, you can use Markdown to insert it. For inline code highlighting, just surround the code with backticks. If you want to insert a block of code, you can use triple backticks and also specify the programming language:

Useful Jupyter Notebook Extensions

Extensions are a very productive way of enhancing your productivity on Jupyter Notebooks. One of the best tools to install and use extensions I have found is ‘Nbextensions’. It takes two simple steps to install it on your machine (there are other methods as well but I found this the most convenient):

Step 1: Install it from pip:

Step 2: Install the associated JavaScript and CSS files:

Once you’re done with this, you’ll see a ‘Nbextensions’ tab on the top of your Jupyter Notebook home. And voila! There are a collection of awesome extensions you can use for your projects.

Multi-user Notebooks

There is a thing called JupyterHub which is the proper way to host a multi-user notebook serverwhich might be useful for collaboration and could potentially be used for teaching. However, I have not investigated this in detail as there is no need for it yet. If lots of people start using jupyter notebooks, then we could look into whether JupyterHub would be of benefit. Work is also ongoing to facilitate real-time live collaboration by multiple users on the same notebook — more information is available here and here.

 

Summary

Jupyter notebooks are useful as a scientific research record, especially when you are digging about in your data using computational tools. In this lesson, we learned about Jupyter notebooks. To add, in Jupyter notebooks, we can either be in insert mode or escape mode. While in insert mode, we can edit the cells and undo changes within that cell with  cmd + z on a mac or  ctl + z on windows. In escape mode, we can add cells with b, delete a cell with x, and undo deletion of a cell with z. We can also change the type of a cell to markdown with m and to Python code with y. Furthermore, we can have our code in a cell executed, we need to press shift + enter. If we do not do this, then the variables that we assigned in Python are not going to be recognized by Python later on in our Jupyter notebook.

Jupyter notebooks/Google colab are more focused on making work reproducible and easier to understand. These notebooks find the usage in cases where you need story telling with your code!

Follow this link, if you are looking to learn more about data science online!

You can follow this link for our Big Data course!

Additionally, if you are having an interest in learning Data Science, click here to start

Furthermore, if you want to read more about data science, you can read our blogs here

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Autonomous Analytics: Driving the Future of Data in Business Analytics

MMS Founder
MMS RSS

Article originally posted on InfoQ. Visit InfoQ

Autonomous data analytics will be the driver of business analytics in the future and will be seamlessly integrated into our lives. John Thuma, from Arcadia Data, spoke at Enterprise Data World 2019 Conference in Boston about self-driving analytics.

He started off the presentation by asking the question if analytics initiatives are at an ROI cross-roads. According to a Gartner report on Business Intelligence project failures, 70-80% of the enterprise BI initiatives are bound for failure. The reasons for this are complex technology stacks, communication issues, lack of self service and relying on the past.

Descriptive analytics are great but they only tell us what’s happening and trends, but they don’t tell us why or what to do next. The organizations are now just governing the analytics; they are not developing analytics. Also, the friction between the teams in Business, Data Science, and IT areas (Data Science Iron Triangle) doesn’t help much with success in analytics initiatives.

Thuma discussed the need for a transition from passive to active analytics, which involves:

  • human limitations to tireless exploration
  • Passive analytics to “always-on” analytics
  • Perspective lock to continuous inspection

Autonomous analytics will help with the data/information finding its customer, not the other way around. Solutions like recommendation engines make analytics seek out its user or consumer.

Augmented analytics also aid with this goal. Augmented analytics are the next generation analytics capabilities that can automatically prepare and cleanse data, perform feature engineering, find key insights and hidden patterns. Automation expedites investigation across millions of variable combinations that would be too time-consuming for a human to do manually.

Other initiatives like smart cities can also be benefitted by autonomous analytics, with alerts being sent to emergency support services and law enforcement organizations. Analytics can also help in redirecting the traffic configuration and alerting the connected vehicles with any critical traffic situations.

Legacy analytics are complex & expensive in the areas of ETL/data movement and are resulting in higher TCO and time to market. Some of the constraints to realize autonomous analytics are scale (can your BI and analytics keep up with growing data volumes?), performance (is BI fast enough to keep up with business?), and cost (are you getting the value out of your investments?).

Search based BI techniques enables the customers to have a conversation with their data where the users can build their own search engines without moving the data, using Natural Language Processing (NLP) techniques. An ideal analytics solution should require zero data movement, should work on-premises & in the cloud, be able to search across the organizations’ data lakes and should be easy to setup and customize.

Thuma concluded the discussion by suggesting data analytics professionals focus on the “Design of Things”, not just the “Internet of things”. IoT is about operationalization, whereas the design is about discovering what to build. Without autonomous analytics, you don’t know what’s important and what to design and build.
 

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


How do I learn AI using Python?

MMS Founder
MMS RSS

Article originally posted on Data Science Central. Visit Data Science Central

Nowadays it’s becoming possible to create computer systems which can match or even exceed human intelligence. The branch of IT that focuses on creating computer systems that are wiser than humans is known as artificial intelligence. In the near future, students will not need to pay someone to write their dissertation as their machines will be in a position to do so. But before we get there, you can ask someone to write my dissertation for me, and they will help you do the dissertation online cheap. AI is usually a broader subject that ranges from a simple calculator to a product that can radically change the future.

Why AI is a great deal for python experts

One of the most popular coding languages is Python. In the past few years, it seems to be rising in popularity. This is mostly because it is being favored for various applications from web development to process automation to scripting.  There are several programming languages such as Java, LISP or Prolog. When choosing a programing language, there are several factors you need to bear in mind such as:

  •        Personal needs
  •        Coding ability
  •        Ability to find web developers

Benefits of choosing python?

Python is usually OOPs based and mostly focuses on the quick development of applications. It is easy to learn, can be easily scaled and adapted and is a language that grows fast worldwide. The fact that it has libraries that are ever evolving means it is a great choice for mobile apps, web app, Data science, and AI.

Whether your business is a startup that offers cheap writers for hire, or a multinational company that offer help to students, you can take advantage of AI. This is because Python is not limited to a single activity. It is also growing in popularity to enable combination with complex processes like Artificial intelligence, natural language learning and machine learning.

Reasons to combine Python with AI

So you may be wondering, why should I consider Python for my projects that involve AI? Here are some good reasons.

Less code.

AI involves algorithms. Python, on the other hand, makes it easy for the developers in the testing stage. It supports the writing as well as the execution of code. One thing that will draw your interest is the fact that the language can implement a similar logic with just but a 1/5 of the code that is necessary for the other OOPs language.

Prebuilt libraries

Python comes with a lot of libraries depending on the requirement of the project. For instance, Numpy can be to carry out scientific computations while SciPy is a great choice for advanced computing.

Support

The fact that the language is totally open source and has a great online community is a benefit. A lot of web developers are not only active but are ready to assist you in any stage of the development cycle.

Platform agnostic

It is flexible to offer an API from the current language; Python is considered to be a sole platform. When a few changes are made in codes, it is possible to have your apps running in the new OS. This can help to save your development time regarding testing platforms and the migrating code.

Flexibility

A key benefit of the language is the flexibility it offers. You can opt for either an OOP approach or even scripting as Python can be used for different purposes. On top of this, it also works perfectly well as a back end and can be used for linking the different structures of data together. If you are a developer struggling between various algorithms, you can also check various codes in the IDE.

Popularity

If you are a millennial, Python is definitely the best option for you. You will love its flexibility and versatility as this provides it with the potential for a smooth learning curve. You will also be excited to know that it is easier to find a Python develop as compared to hunting for a Prolog or LISP programmer. The fact that it has big libraries and active community helps to improve developing and coding. This is the reason why it is one of the most popular coding languages today.

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Al Shalloway From NetObjectives on the Role of Executives and Managers in Value Stream Mapping

MMS Founder
MMS RSS

Article originally posted on InfoQ. Visit InfoQ

In a presentation delivered at Capital One Agile Conference in December 2018, Al Shalloway, CEO at NetObjectives, spoke about the importance of organizing work and people around value streams and about the role of executives and managers in optimizing the flow of value. Al Shalloway published additional thoughts around value stream and management in The Effective Organization of the Future.

As organizations are transitioning to agile or improving on their transformation journey, the role of executives is to design and communicate the vision of an effective organization that best aligns with its culture and performance goals. The role of executives is not to make the change, but rather when it becomes clear that a change is needed, they need to set the vision and support those changes. They identify the organization’s north star and guide people at every step of the change, instead of imposing a predefined framework.

Executives don’t get involved in the day to day transformation, but, when needed, they support managers and teams in removing organizational impediments. They coordinate with leaders across the organization, such HR, Infrastructure, etc. to avoid and address negative risks to the continuous flow of value.

Because agile transformation represents a change in the way value is delivered, executive need to structure the organization behind the flow of value, the value streams, and empower network of teams to make decisions because they are closest to the day to day delivery of value. Development must tie back to the vision, but most organizations don’t do this very well, according to Shalloway, generally because of the single focus on developing and releasing fast.

This is where the role of managers comes in place: value streams’ objectives are to deliver the highest value in the shortest time. Managers can support achieving this is by eliminating impediments that not only create delays to the value stream, but also create additional work and distractions to the teams who must manage and track the delays. In the most effective organizations, management has the responsibility of reducing the cost of delay, by removing any organizational blocker impeding the flow of value, such as handoffs, work delays when teams are working on too many priorities.

Managers responsibility is also to ensure alignment between the business direction and the development direction. To achieve this, they work relentlessly to continuously reduce the complexity of change and the cost of delay, while optimizing the value eco-system.

Mik Kersten, CEO at Tasktop, introduced, in Project to Product, the value stream network architect, role that can be fulfilled by managers who are officially empowered to improve the value flow. Managers are called to investigate the root cause of impediments and waste, reduce the cost of delay and the organization’s complexity.

Value streams aren’t defined by leaders and managers. Teams must map their value streams and identify inefficiencies. Managers can then reorganize their talent around the value streams to reduce time and flow from concept to value realization. The role of management becomes critical in reducing the cost of delay.

According to Shalloway, organizations often assume that executives and managers understands how networked teams work or how the flow of value and value streams work. Most don’t understand how to tie business initiatives back to the teams and therefore don’t know how to give them the environment and the tools necessary for their success. The role of management is to design environments in which people can work more effectively and then let their people work within that context. Managers must act consistently with trusting the people to operate independently within consensus-based and transparent guardrails and agreements. 

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


QCon New York 2019 (June 24-28) Tracks Announced & Registrations Off to a Fast Start

MMS Founder
MMS RSS

Article originally posted on InfoQ. Visit InfoQ

The 8th annual QCon New York returns to the Marriott Marquis June 24-26, 2019. QCon, organized by the people behind InfoQ.com, is dedicated to providing a platform for innovators and early adopters to tell their story in hotbeds of software development like Beijing, London, San Francisco, Sao Paulo, Shanghai, and New York.

Curious about the talks you see at a QCon? Grady Booch (Co-Creator of UML & Chief Scientist for Software Engineering @IBMResearch) spoke at the recent QCon San Francisco. Booch discussed AI in a talk entitled “Building the Enchanted Land.” Examining the past and future of AI, Booch’s talk is an example of the types of talks you’ll find at QCon. You can watch the full video online at InfoQ.

Just like the speakers, our track hosts are individually selected based on their vision for the topics the organizing committee felt were the most important in software today. Some of the early track hosts confirmed include:

  • Jeanne Boyarsky, Java developer, and ScrumMaster
    Track: Modern Java
  • Anna Neyzberg, Developer & Project Lead @CarbonFive
    Track: Developing/Optimizing Clients for Developers
  • Dave Hahn, Manager @ Netflix, Cloud Operations and Reliability Engineering
    Track: Architecting for Failure
  • Randy Shoup, VP Engineering @ WeWork
    Track: Architectures You’ve Always Wondered about

QCon New York 2019 features 15 editorial tracks (and three sponsored tracks). Each “editorial” track (that’s what we call the curated talks focused on developer lessons) is a collection of software topics curated by a domain expert in areas such as culture, data science, machine learning, front-end technologies, and architecture. Here’s an example of last year’s schedule to get an idea of what to expect. Each of these invitation-only talks focuses on issues software engineering leaders like you want to know more about. QCon believes in practitioners over evangelists. Here you learn from the committers, the maintainers, the people moving our industry forward.

The QCon NY 19 tracks are:

  • Modern Java
    6-month cadence, cloud-native deployments, scale, Graal, Kotlin, and beyond. Learn how the role of Java as it evolves for the next 20 years.
  • High Performance Computing: Lessons from FinTech & AdTech
    Killing latency and getting the most out of your hardware.
  • 21st Century Languages
    Lessons learned from building languages like Rust, Go-lang, Swift, Kotlin, and more.
  • Software Defined Infrastructure: Kubernetes, Service Meshes, & Beyond
    Deploying, scaling, managing your services is undifferentiated heavy lifting. Hear stories, learn techniques, and dive deep into software infrastructure.
  • Non-Technical Skills for Technical Folks
    Skills to be a top technician that don’t involve writing code: communication, empathy, emotional grit, fortitude, teamwork, advanced critical thinking.
  • Architectures You’ve Always Wondered About
    Hard earned lessons from names you know on scalability, reliability, throughput, and performance.
  • Machine Learning for Developers
    Machine learning is more approachable than ever. Learn techniques and use cases with PyTorch, Keras, and TensorFlow that will become foundational for modern application developers.
  • Microservices / Serverless (Patterns & Practices)
    Evolving, observing, persisting, operating, and building modern architectures.
  • Data Engineering for the Bold
    Explore the power of data systems & architectures
  • Developing/Optimizing Clients for Developers
    Electron, Flutter, JavaScript, GraphQL, Node/NPM. Web Workers, Wasm, WebVR, Speech/Alexia/Pipeline. More topics than room in this modern UI tech track.
  • Trust, Safety, & Security
    Privacy, confidentiality, safety, security: learn from the frontlines.
  • Modern CS in the Real World
    Thoughts pushing software forward, including consensus, CRDTs, formal methods, & probabilistic programming.
  • Human Systems: Hacking the Org
    Innovative approaches to organizational leadership and management to build unique company cultures.
  • Building High-Performing Teams
    Building, maintaining, and growing a team balanced for skills and aptitudes. Constraint theory, systems thinking, lean, hiring/firing and performance improvement will be discussed.
  • Architecting For Failure
    More than just building software, building deployable production-ready software in the face of guaranteed failure.

Early Confirmations for QCon New York 2019

Brian Goetz, Java Language Architect @ Oracle, has just been confirmed as a speaker in the Modern Java Track. Watch one of his previous talks from QCon London – From Concurrent to Parallel.

If you are a software leader (someone who is the go-to person when things get tough on your team), QCon is your tribe. QCon offers sessions and advice from the world’s most innovative shops. These talks will help you grow your career, build your network, and lead your company in 2019. QCon is an amazing balance of what you need in order to be a modern software developer, architect, or leader.

Full coverage from last year’s event can be found here.

Registration is $2,215 ($620 off) for the three-day conference if you register before April 6th.

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.