You are hereFeed aggregator / Sources / Dzone

Dzone


Syndicate content
Recent posts on DZone.com
Updated: 57 min 55 sec ago

Streaming Data From Twitter for Analysis in Spark

Tue, 01/16/2018 - 2:02am

Happy New Year! Our first blog entry of 2018 is a guest post from Josh Janzen, a data scientist based in Minnesota. Josh wanted to ingest tweets referencing NFL games into Spark, then run some analysis to look for a correlation between Twitter activity and game winners. Josh originally posted this entry on his personal blog and kindly allowed us to repost it. Over to you, Josh.

'Tis the season of NFL football, and one way to capture excitement is Twitter data. I've tinkered around with Twitter's Developer API before, but this time I wanted to use a streaming product I've heard good things about: StreamSets Data Collector.

Categories: Technical

Building a Voice-Activated Movie Search App Powered by Amazon Lex, Lambda, and MongoDB Atlas: Part 1

Tue, 01/16/2018 - 2:02am

We'll be posting about a number of topics related to running MongoDB in the public cloud. See all posts here.

Introduction

I thought this would be a good opportunity to explore how to combine serverless and artificial intelligence services such as Lex and Lambda with MongoDB Atlas, our fully managed database service.

Categories: Technical

What Are the Implications of Meltdown and Spectre for IoT?

Tue, 01/16/2018 - 2:01am

Less than a week into 2018 and security researchers at the Project Zero team at Google were announcing the discovery of security vulnerabilities, Spectre and Meltdown. Several international research teams discovered the flaws over the last six months but it took a while for the news to go public. I spoke to Jason McNew, Founder and CEO of Stronghold Cybersecurity, and Kayne McGladrey, IEEE Member, director of information security services at Integral Partners to find out more.

A Brief Rundown of Meltdown and Spectre

Categories: Technical

Tarantool and Memcached: Two Cache Engines Considered

Tue, 01/16/2018 - 2:01am

Memcached (2003) and Tarantool (2009) hail from two different generations of in-memory cache databases. So, in some respects, it isn't completely fair to compare them because later technologies often benefit from and surpass earlier ones. But just because a technology comes later doesn't mean it's the best tool for the job; sometimes, a less capable but simpler technology may fit your needs. This article assumes that you're choosing between Memcached and Tarantool for a new application or perhaps are deciding whether to continue to support a legacy Memcached installation.

Caching vs. Smart Caching

Memcached operates with a nice and simple approach. Applications using it check first to see whether requested data is in Memcached before making a call to the slower database it is paired with. One issue that can arise is when Memcached and its paired database get out of sync due to a failed update on one or the other since they're not replicated and the application is communicating with them separately. Tarantool fixes this problem by functioning as a smart cache, meaning that an update will be completed in Tarantool only after the update has succeeded in the paired database. The way this works is that instead of communicating with both layers, an application communicates only with Tarantool, which is responsible for updating the paired database. Additionally, you can perform work on the data in Tarantool at any point in the process using the full Lua application server that runs concurrent to its database server.

Categories: Technical

API Transit Basics: SDKs

Tue, 01/16/2018 - 2:01am

Software Development Kits (SDKs) and code libraries in a variety of programming languages have always been a hallmark of API operations. Some API pundits feel that SDKs aren’t worth the effort to maintain and keep in development alongside the rest of API operations, while others have done well delivering robust SDKs that span very valuable API stacks–consider the AWS JavaScript SDK as an example. Amidst this debate, SDKs continue to maintain their presence and even have been evolving to support a more continuous integration (CI) and continuous deployment (CD) approach to delivering APIs and the applications that depend on them.

Supporting SDKs in a variety of programming languages can be difficult for some API providers. Luckily there is tooling available that helps auto-generate SDKs from API definitions, helping make the SDK part of the conversation a little smoother. Of course, it depends on the scope and complexity of your APIs, but increasingly auto-generated SDKs and code as part of a CI/CD process is becoming the normal way of getting things done, whether you are just making them available to your API consumers, or you are actually doing the consuming yourself.

Categories: Technical

pimpl Abstract Interface: A Practical Tutorial

Tue, 01/16/2018 - 2:01am

Let's look at pimpl and its alternatives in a real application! I've implemented a small utility app - for file compression - where we can experiment with various designs.

Is it better to use pimpl or maybe abstract interfaces? Read on to find out.

Categories: Technical

SDN, NFV, and 5G Wireless Will Drive IoT and Networking Teams

Tue, 01/16/2018 - 2:01am

If you take a peek at the telecom world, you see a couple of big networking trends that are making waves there. However, changes are still slow to come, since network managers have a lot of legacy networks and infrastructure in place now. Ripping and replacing is expensive, time-consuming and risky.

This expert thinks 2020 will be the year of actual hardware change for many telecom providers. At that point, the big technology changes will probably be around SDN, NFV, IoT, and 5G wireless. The SDN trend will make sense to more telecom companies once virtual functions and switches are widespread in data centers and interoperability becomes easier. IoT doesn’t have a lot of obvious money-making potential right now, though 5G has the potential to create revenue as telecom providers offer faster links to customers. Like all technology choices today, the company’s bottom line will drive new network purchasing decisions.

Categories: Technical

Top Cloud and AI Trends for 2018

Tue, 01/16/2018 - 2:01am

Over the last decade, cloud and AI have emerged as two important technologies for companies and businesses to use to transform themselves. They're crucial for businesses in order to compete in the fast-changing digital ecosystem.

Both cloud and AI have immense benefits. Cloud, of course, enables a digitally connected world and reduces the workload of managing heavy hardware. AI, on the other hand, has the potential to streamline the immense capabilities of cloud computing and equip businesses with tremendous power. Among its many applications, AI is implemented by many companies in the technology space to analyze and learn from historical data, identify patterns, and make real-time decisions that lead to process automation and eradication of human errors.

Categories: Technical

8 Essential Features of an Enterprise Mobility App

Tue, 01/16/2018 - 2:01am

Enterprise mobility is becoming an important element in the digital transformation journey of growing business organizations. Know all the essential features that any enterprise mobility app must possess for improving business processes.

An enterprise mobility app should be designed to offer maximum functionality and streamline the process flow within an organization. Once the goal of enterprise mobility app development is defined, emphasis should be on incorporating the best features to enhance the user experience and facilitate adoption. Every enterprise mobility app should focus on the following features/specifications for success:

Categories: Technical

Working With Multiple Cloud Providers (Part 3): Linking Azure and GCP

Tue, 01/16/2018 - 1:01am

This is the third and final post in a short series on linking up Azure with GCP. In the first post, I set-up a basic Azure function that updated some data in table storage, and then in the second post, I configured the GCP link from PubSub into BigQuery.

In the post, we’ll square this off by adapting the Azure function to post a message directly to PubSub; then, we’ll call the Azure function with Santa’a data, and watch that appear in BigQuery. At least, that was my plan – but Microsoft had other ideas.

Categories: Technical

Application Design the Java 9 Way

Tue, 01/16/2018 - 1:01am

Java 8 brought many great improvements to the language. Java 9 enhanced them further! A major paradigm shift now needs to occur. The tools that Java 8 and 9 provide for application design are immensely improved. Java 8 allows static methods on interfaces. Java 9 provides a level of organization above the package: the module. Putting these two techniques together results in better designs and stronger object-oriented guarantees.

Interfaces Rule!

It feels like interfaces passed out of favor in the Java world. There was a time when classes not implementing interfaces were considered suspicious and discussed in code review. Now, major IDEs provide class templates that automatically declare classes public and don't provide or expect an "implements" clause.

Categories: Technical

Why People Hate Unit Testing and How To Bring Back the Love

Mon, 01/15/2018 - 5:01pm

Let's face it. Nobody really likes to do unit testing. I've had people come up to me at conferences with stories and stories of how much they hate it. And while there are some people who are good at it, for the majority of us, it is just a necessary evil that must get done despite the best, most clever complaints. Today I'm going to look at some of the reasons why we don't like it, and how to get past these obstacles with software automation.

So Why Do Unit Testing, Anyway?

Most development teams will agree that, although they don't like it, unit testing is, in fact, valuable. It helps developers truly understand the code they are developing, and provides a solid foundation to the continuous testing pyramid, as shown above, which, in turn, enables teams to accelerate agile development while mitigating risk of defects slipping into later stages of the pipeline.

Categories: Technical

Discussing Teamwork and Measures on Agile for Humans

Mon, 01/15/2018 - 5:01pm

Ryan Ripley interviewed me for the 83rd episode of his podcast, Agile for Humans, entitled, "Create Your Successful Agile Project." We had a blast.

I didn’t stint on my opinions or on my experience with agile teams. One of those opinions was about teambuilding, which I wrote about in Creating an Environment of Teamwork.

Categories: Technical

JUnit4, JUnit5, and Spock: A Comparison

Mon, 01/15/2018 - 5:01pm

Recently, I gave a talk in my local Java User Group about unit testing. Some of the content of the talk was about some popular libraries you can use in your Java project. I’ve reviewed JUnit4, JUnit5, and the Spock framework. Many of the attendees were quite surprised with the differences. In this post, I will summarize asserts, parametrized tests, and mocking.

I always like to demonstrate the concepts with examples and live coding, so I chose a simple algorithm: a Fibonacci number calculator. If you don’t know it, it’s just to generate numbers that are the sum of the two previous ones in the series: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377.

Categories: Technical

Java Image Cat and Dog Recognition With Deep Neural Networks

Mon, 01/15/2018 - 3:54pm

In this post, we are going to develop a cat and dog image recognition Java application using Deeplearning4j. If you would like to experiment with your own cat or dog, feel free to check out the source code or download the application (fairly short instructions at the end).

Computer Vision Nature

Even with the great progress of deep learning, computer vision problems tend to be hard to solve. One of the reasons is that neural networks (NN) are trying to learn a highly complex function, like image recognition or image object detection. We have a bunch of pixel values, and from there, we would like to figure out what is inside — so this really is a complex problem on its own.

Categories: Technical

10 Enterprise Machine Learning Predictions for 2018

Mon, 01/15/2018 - 3:01pm

With our 2018 machine learning predictions, we’re taking another shot at machine learning clairvoyance with some brand new calls while also upping the ante to serious “double dog dare you” territory by reiterating some of our previous calls.

We’d like to stress that the predictions made here are shared through a lense of “machine learning in the enterprise.” As such, we’re less concerned with predicting the twists and turns in the heady world of machine learning research and more concerned with the experience of the typical enterprise when looking to leverage the technology to reach its quarterly, annual or longer-term strategic business goals.

Categories: Technical

Code Rewrites and How They Create Value - Stop Fighting Against It

Mon, 01/15/2018 - 3:01pm

TL;DR - To remove doubts and questions, rewrite it.

Many, many people are confronted with the request to maintain someone else's code.

Categories: Technical

Can Web Developers Dress Up a Pig?

Mon, 01/15/2018 - 2:01pm

As a web developer, you don't think about how pretty your website is supposed to look.

Most developers focus on functionality. Get it working and pass it off to design.

Categories: Technical

OAuth 2.0 in a Nutshell

Mon, 01/15/2018 - 2:01pm

OAuth 2.0 is an industry-standard protocol for authorization. It provides a wide range of authorization flows to support various uses cases for web applications, desktop applications, mobile phones, and IoT devices.

It is important to stress that OAuth is solely responsible for coarse-grained authorization, that is whether the application/device is authorized to make the request. However, the service still needs to make a decision on whether the specific request that has been made is actually allowed based on multiple factors such as time, region, delegation rules, etc. This is where fine-grained authorization models (PDP, PAP, PIP, PEP) come in. Visit my blog post for more details on fine-grained authorization.

Categories: Technical

How to Get Command Line Integration with Newman in Postman

Mon, 01/15/2018 - 2:01pm

Postman is a tool for sending requests to API endpoints. It also provides lots of useful functionalities on top of the main HTTP requests like API documentation, monitoring, simulating a mock server, etc. If you want to learn how to use Postman, check out this blog post "How to Use Postman to Manage and Execute Your APIs."

Newman is a nice part of Postman, and it makes Postman more powerful. Newman is a command line executor for Postman tests, enabling you to run a Postman collection from the command line. By using Newman, we can integrate API test automation to Continuous Integration tools.

Categories: Technical