Select Page

Author: admin

Having fun with link hover effects

A designer I work with was presenting comps at a recent team meeting. She had done a wonderful job piecing together the concept for a design system, from components to patterns and everything in between that would make any front-end developer happy. But there was a teeny tiny detail in her work that caught my eye: the hover state for links was a squiggle. Default link (top) and hover effect (bottom) Huh! Not only had I not seen that before, the idea had never even crossed my mind. Turns out there are plenty of instances of it on live...

Read More

Securing Communications on Android

With all the recent data breaches, privacy has become an important topic. Almost every app communicates over the network, so it’s important to consider the security of user information. In this post, you’ll learn the current best practices for securing the communications of your Android app. Use HTTPS As you are developing your app, it’s best practice to limit your network requests to ones that are essential. For the essential ones, make sure that they’re made over HTTPS instead of HTTP. HTTPS is a protocol that encrypts traffic so that it can’t easily be intercepted by eavesdroppers. The good thing about Android is that migrating is as simple as changing the URL from http to https.  URL url = new URL(""); HttpsURLConnection httpsURLConnection = (HttpsURLConnection)url.openConnection(); httpsURLConnection.connect(); In fact, Android N and higher versions can enforce HTTPS using Android’s Network Security Configuration. In Android Studio, select the app/res/xml directory for your project. Create the xml directory if it doesn’t already exist. Select it and click File > New File. Call it network_security_config.xml. The format for the file is as follows: To tell Android to use this file, add the name of the file to the application tag in the AndroidManifest.xml file: <application android:networkSecurityConfig="@xml/network_security_config" Update Crypto Providers The HTTPS protocol has been exploited several times over the years. When security researchers report vulnerabilities, the defects are often patched. Applying the...

Read More

Safari Ripper ☠️

Security researcher Sabri posted a bit of code that will “force restart any iOS device.” It’s interesting to see HTML & CSS have this kind of dangerous power. It’s essentially a ton of s scaled to be pretty huge and then set over a repeating JPG image with each blurring the background via backdrop-filter. It must cause such extreme and unhandled memory usage that it wreaks havoc on the browser as well as the entire operating system. I was trying to test it out myself and be really careful not to execute it… but of course I did, and it crashed my Chrome 68 on a MacBook Pro. Not the whole operating system, but I had to force quit the browser. Then again, I suppose even while(true) {} can do that! The comment thread on the gist hast more interesting details, like how it crashes iOS Safari 9+ (including the new version 12!) and weird behavior on the PlayStation 3 native browser. Direct Link to Article — Permalink The post Safari Ripper ☠️ appeared first on CSS-Tricks....

Read More

Data Science and Analytics for Business: Challenges and Solutions

As more companies discover the importance of data science and advanced analytics for their bottom line, a clash of cultures has begun. How can these quickly growing fields become part of a company’s ecosystem, especially for established companies that have been around for a decade or longer?  Data scientists and IT professionals have vastly different needs when it comes to infrastructure. Here, I’ll lay out some of those requirements and discuss how to move beyond them—and evolve together. Department Perspectives When starting up data science programs within companies, the biggest issues often arise not from the technology itself, but...

Read More

Using Scoped Slots in Vue.js to Abstract Functionality

Let’s start with a short introduction to Vue.js slots concept. Slots are useful when you want to inject content in a specific place of a component. Those specific places that you can define are called slots. For example, you want to create a wrapper component that is styled in a specific way but you want to be able to pass any content to be rendered inside that wrapper (it might be a string, a computed value, or even another component). There are three types of slots: default / unnamed slots: used when you have a single slot in a...

Read More
000webhost logo