Many software developers have a tendency to avoid talking to people. They would rather just rely on written communication in chats, email or issue tracker tickets. However, talking to people more can make them more effective as software developers. Here … Continue reading →
28 May 2017
Intro, A look back into the past # So a while ago, I posted this rundown of my Plex server and storage setup for media, and it got some traction, which is nice. In that post I mentioned that my storage setup left a lot to be desired and I had issues with it, let me explain.
26 May 2017
Customer churn has a major impact on the bottom line for any company using a subscription billing model.
25 May 2017
How to stream live weather data into a real-time chat app whenever requested.
I'm happy to announce Marvin, boilerplate for kicking off React/Redux applications. Basically my boilerplate became Work & Co's internal project. It is meant to be a starting point for our React projects. This way faster development is assured along with higher quality code. It is open source, and external contributions are welcome. Name comes from a fictional character Marvin, android…
24 May 2017
The ability to generate mock but valid data comes in handy in app development, where you need to work with databases. Filling in the database by hand is a time-consuming and tedious process, which can be done in three stages — gathering necessary information, post-processing the data and coding the data generator itself. It gets really complicated when you need…
(Always One More Thing…) Who Are We? The Ad Management team here at Bazaarvoice grew out of an incubator team. The goal of our incubator is to quickly iterate on ideas, producing prototypes and “proof of concept” projects to be iterated on if they validate a customer need. The project of interest here generates reports […]
A walkthrough of the 3 different Functions event handler types, and when to use them.
We’re open-sourcing OpenAI Baselines, our internal effort to reproduce reinforcement learning algorithms with performance on par with published results. We’ll release the algorithms over upcoming months; today’s release includes DQN and three of its variants.
Google Cloud Functions, Rollback function, DeadLetterConfig, Login command and more in the Serverless Framework v1.14 release.
22 May 2017
There are some situations where you would like to have at least one (empty) row in your result set in SQL. Imagine the following situation. We’re querying the Sakila database for actors and their films: yielding something like: +------------+-----------+---------------------+ | FIRST_NAME | LAST_NAME | TITLE | +------------+-----------+---------------------+ | ... | ... | ... | | … Continue reading How to…
The standard inner product of two vectors has some nice geometric properties. Given two vectors $ x, y \in \mathbb{R}^n$, where by $ x_i$ I mean the $ i$-th coordinate of $ x$, the standard inner product (which I will interchangeably call the dot product) is defined by the formula $$\displaystyle \langle x, y \rangle = x_1 y_1 + \dots…
Unlock your learning potential: Practical tips for mastering any skill.
Today, we deployed HTTPS by default on Stack Overflow. All traffic is now redirected to https:// and Google links will change over the next few weeks. The activation of this is quite literally flipping a switch (feature flag), but getting to that point has taken years of work. As of now, HTTPS is the default on all Q&A websites. We’ve…
21 May 2017
I recently read a great post by Benjamin Encz about bridging Swift to Objective-C by creating bridging types that can be exposed to the older language. I wondered if his idea can be improved and automated using meta-programming with Sourcery by Krzystof Zablocki. The answer is a very impressive ObjC-like uppercase YES. First of all, you should read Benjamin’s post.…
19 May 2017
The importance of full integration for payments, cash flow and practice efficiency
Serverless lead front-end engineer Nik Graf demonstrates how to build a Serverless REST API with Lambda and DynamoDB.
18 May 2017
Kotlin is the next big thing. With Google announcing official support for Kotlin on Android, we’ll see a lot more traction for this lovely language. After today's #kotlin announcement, we're betting this tag will blow up just like Swift did. #io17. https://t.co/whOcJlJfWe pic.twitter.com/2QKEJIRYVi — Stack Overflow (@StackOverflow) May 17, 2017 We’ve already blogged about the … Continue reading 10 Nice…
Serverless lead front-end engineer Nik Graf shows you how to get started writing and deploying functions with the Serverless Framework.
17 May 2017
I moved my blog to WordPress. New location is here https://kimmoir.blog/
Ah, clickbait. Where would the internet be without it? The answer will shock you! But seriously, I didn't mean to insult your favorite language… much. After all, your language of choice is probably getting better at a glacial pace. Right? If your language isn't dead, then it's gradually getting better as they release updates to it. How slowly, though? Well...…
How to build a collaborative, multi-user real-time Android todo list using IBM Bluemix and PubNub.
Solutions Engineers at Datadog have to stay on top of what’s going on within the company and outside.
Update, December 2017 # Check this post for updated, more performant version. I love JavaScript decorators. One that I copy to every React project is scroll decorator. It is fairly simple way of injecting scroll position to react components. This way you can handle scroll using react lifecycle. This decorator is not listening to a scroll event, as that is…
16 May 2017
Utilizing the PubNub Key-Value Store with Functions to store and retrieve data in the network, completely serverless.
In the last couple of years the Anti-Vaccination crowd in the United States has started to make inroads with more and more people deciding that the perceived risk of the vaccination outweighs the known risk of the disease. When you ask them why they dont vaccinatie they always have anecdotal evidence of how the vaccination could hurt them, how they…
We’ve created a robotics system, trained entirely in simulation and deployed on a physical robot, which can learn a new task after seeing it done once.
After working on the Linux kernel for Nexus and Pixel phones for nearly a year, and messing around with the excellent Eudyptula challenge, I finally wanted to take a crack at submitting patches upstream to the Linux kernel. This post is woefully inadequate compared to the existing documentation, which should be preferred. http://elixir.free-electrons.com/linux/latest/source/Documentation/process https://kernelnewbies.org/FirstKernelPatch I figure I’d document my workflow,…
Working with a lot of data using plain JPA or hibernate or spring-data is possible, it does work and usually, it doesn’t require a lot of extra coding. Starting small is the fastest way of getting things done but you must be aware of few things that might shoot you in the foot. Read more
15 May 2017
We are releasing Roboschool: open-source software for robot simulation, integrated with OpenAI Gym.
14 May 2017
Phoenix Framework always has been awesome. But it was never as awesome as the new 1.3 release (which is rc1 right now actually). There are a lot of significant changes. Chris McCord made a great job writing a complete migrating guide . Inspired by it and by the talk Chris gave at the LonestarElixir this article will try to guide…
I’ve been using Jekyll on my blog since 2012. It is great! But, lately, its slow build times started to bother me.
Friends of mine from the band Time Pills opensourced bunch of their tracks. You can find them on GitHub. They are looking forward to having them remixed by creative people and sharing it with the world Repo contains all of the tracks, stems, presets, loops and even midi files. Be sure to check them on SoundCloud as well. Enjoy!
12 May 2017
How to build IoT-enabled smart parking meters with monitoring using IBM Bluemix, Android, PubNub, and Cordova.
A roundup of links and videos from the serverless ecosystem that caught our attention this week.
11 May 2017
Dive into an example of how to deploy highly-secure encrypted data streams with advanced serverless event handling, based on meta attributes.
Lots of software projects struggle when they try to implement search-related features. I was reminded of this by @trek's reaction to this Algolia marketing tweet: Development teams often delay building search due to lack of confidence in getting it right & fear that it will take longer
About six months ago, we shared Why We Hackathon. At Bazaarvoice, we host a company-wide hackathon twice a year, and our next one kicks off this week. My previous post primarily focused on the people and company culture aspects of running a hackathon. In lieu of writing “Synergizing Innovation With Disruptive Hackathons”, this time around […]
There are abundant resources online trying to scare programmers away from using shell scripts. Most of them, if anything, succeed in convincing the reader to blindly put something that resembles
Geoeditor is a simple online app for collaborative creating and editing of basic geographical data - just draw points, polygons and lines on top of the maps directly in a web browser.
Serverless Product Manager Brian Neisler gives tips for overcoming provider lock-in to create more portability and freedom in your Serverless projects.
10 May 2017
Our new GeoEditor mobile app brings comfortable drawing tools, importing own maps into mobile devices, various base maps, standardized data formats, and much more!
Async variable support added in Serverless v1.13 for enhanced configuration & secret management
ServerlessAsync Serverless variables, Cross-Service communication, Lambda tags and more in the Serverless Framework v1.13 release.
9 May 2017
I was recently asked in an interview about my opinion on how to be a great programmer. That’s an interesting question, and I think we can all be great programmers, regardless of our talent, if we follow a couple of rules that – I believe – should be common sense. In fact, these rules don’t … Continue reading 10 Tips…
In my most recent article, I mentioned a great new feature in Rails 5.1, delegate_missing_to. With delegate_missing_to, any method that you can’t find on one object is called on another object, instead: class Player delegate_missing_to :@user def initalize(user) @user = user end def points Game.points_for_user(user.id) end end Player.new(user).name # calls user.name But, like Gavin mentioned in the comments, this seems…
Another tech meetup coming up. This time we have three great talks about engineering and project planning. We also have a special guest - IT girls team. The IT Girls team will share their advances in promoting the professional development of women in technology in Serbia. This one will be held on Tuesday, May 16th at Impact Hub Belgrade. See…
8 May 2017
The Difficulty of Tuning Queries Over a Database Link – Or How I Learned to Stop Worrying and Love the DUAL@LINK Table
jOOQA large-ish customer in banking (largest tables on that particular system: ~1 billion rows) once decided to separate the OLTP database from the “log database” in order to better use resources and prevent contention on some tables, as the append-only log database is used heavily for analytic querying of all sorts. That seems to make … Continue reading The Difficulty…
Let’s Build A Simple Interpreter. Part 14: Nested Scopes and a Source-to-Source Compiler.
Ruslan SpivakOnly dead fish go with the flow. As I promised in the last article, today we’re finally going to do a deep dive into the topic of scopes. This is what we’re going to learn today: We’re going to learn about scopes, why they are useful, and how to implement them in code with symbol tables. We’re going to learn…
You might have heard that you shouldn't be using JWT. That advice is correct - you really shouldn't use it. In general, specifications that allow the attacker to choose the algorithm for negotiation have more problems than ones that don't (see TLS). N libraries need to implement M different encryption and decryption algorithms, and an […]
5 May 2017
A roundup of serverless and FaaS links that caught our attention this week.
4 May 2017
There is a popular trend among some Javascript developers to argue that humans should stop writing CSS and HTML (and HTML-based templates). They argue everything should instead be written as Javascript, to reduce complexity and present a more unified developer experience. And certainly many people who try this approach
As I continue to try to learn R, I am trying to build tools that other people might find useful. Tonight with the help of Bob Rudis I built a script that will find domains with a keyword in it from DomainPunch, do a geoip lookup and map it if it is online. Since it is time to start thinking…
FaunaDB's Chris Anderson walks through extending the popular todo list serverless-crud example app to allow sharing and collaboration on lists.
3 May 2017
Many people have expressed an interest in contributing to Cardstack and have been clamoring for some docs to help them get started. This is the first of three posts I intend to ship in the near term to unlock some of that potential energy: Cardstack Architecture Notes. This post. A
In SQL, quite often, we want to compare several values with each other. For instance, when we’re looking for a specific user by their first and last names, we’ll write a query like this one: We’re getting: CUSTOMER_ID FIRST_NAME LAST_NAME ------------------------------------ 8 SUSAN WILSON Surely, everyone agrees that this is correct and perfectly fine as … Continue reading Don’t Use…
European businesses and consumers have unique preferences when it comes to paying for goods and services online. Optimizing the payment process allows US companies to beat their competition and capture these customers, who are ready and willing to spend.
A wish list for bringing databases up to speed in the era of serverless application development.
2 May 2017
Last week, during RailsConf 2017, Rails 5.1 shipped. If you followed the announcements, you’ve seen the big features: better integration with modern JavaScript, encrypted secrets, and system tests. And there’s my personal favorite: finally getting rid of the weird combo of form_for and form_tag, and replacing it with form_with. I can’t wait to try it. But the reason I love…
1 May 2017
Update: I’m excited to say that we’ve now hired a (great!) technical writer, so the position is closed.
Jared Short from Trek10 joins us to share his take on the serverless ecosystem and where it's going.
30 Apr 2017
Since I have started looking at the Umbrella DNS Popularity List I was interested in seeing how much the data changes day to day. I fired up RStuido and wrote some terrible code but finally got it to work with some help. Yesterday there were 80937 new DNS names on the list that were not on the list the day…
I set out to learn about Azure Functions and this is the knowledge I have gathered so far. To have something to work with, I decided to migrate the ASP.NET Core Web API for “My latest online activities” to Azure Functions. As background, refer to these related blog posts: Getting started with React Continuous Delivery with Visual Studio Team Services…
In my previous post I showed that Go maps are not reference variables, and are not passed by reference. This leaves the question, if maps are not references variables, what are they? For the impatient, the answer is: A map value is a pointer to a runtime.hmap structure. If you’re not satisfied with this explanation, read on. What […]
29 Apr 2017
Recently I started looking at the Umbrella DNS Popularity List and did a blog post about it here. The data seemed valuable and lacking at the same time so I spent my *limited* free time this week learning about R and RStudio. Protip: If you want to play along at home there is an RStudio docker container so all you…
My post on pointers provoked a lot of debate about maps and pass by reference semantics. This post is a response to those debates. To be clear, Go does not have reference variables, so Go does not have pass-by-reference function call semantics. What is a reference variable? In languages like C++ you can declare an alias, […]
28 Apr 2017
In my experience, code can rot in two distinct ways. The first case is code that hasn’t been used in a long time, but where the environment has changed so it is no longer possible to run the code. In … Continue reading →
We are running Kubernetes on both sandbox and production for some months now. Our production cluster is still small, with few services running on it, but, most of our sandbox environment is running on a Kubernetes cluster on AWS.
27 Apr 2017
Anything worth doing is worth overdoing. Before doing a deep dive into the topic of scopes, I’d like to make a “quick” detour and talk in more detail about symbols, symbol tables, and semantic analysis. In the spirit of “Anything worth doing is worth overdoing”, I hope you’ll find the material useful for building a more solid foundation before tackling…
Optimistic locking is concurrency control method that allows to execute multiple transactions simultaneously as long as they don’t interfere which each other. That’s definition from wikipedia. You probably already know that Hibernate supports optimistic locking and all you have to do in order to implement optimistic locking in you app is to add @Version on number or timestamp field and…
26 Apr 2017
Context and Higher Order Components: Two Immediately Applicable Topics from the Advanced React Workshop
BazaarvoiceThanks to Bazaarvoice I recently attended an “Advanced React Workshop” put on by React Training and taught by Ryan Florence, one of the creators of React Router. Ryan was an engaging teacher and the workshop was filled with memorable quotes. Here are some highlights: The great conundrum of accessibility is that learning it is not […]
If you are new to my blog then you might be new to the concept of Linux kernel namespaces. I suggest first reading Getting Towards Real Sandbox Containers and Setting the Record Straight: containers vs. Zones vs. Jails vs. VMs. Linux namespaces are one of the primitives that make up what is known as a “container.” They control what a…
How to build a voice-controlled home automation app using PubNub and Amazon Alexa for natural language processing device control.
This is a brief post documenting a very weird thing I partly came up with on Stack Overflow today. The context is this question. But to skip to the shock, we end up with code like this: That just shouldn’t happen. You shouldn’t be able to create an instance of an open type – a … Continue reading Surprise! Creating…
This post is for programmers coming to Go who are unfamiliar with the idea of pointers or a pointer type in Go. What is a pointer? Simply put, a pointer is a value which points to the address of another. This is the textbook explanation, but if you’re coming from a language that doesn’t let […]
New package command, Python 3.6 support, new OpenWhisk runtimes and more in the Serverless Framework v1.12 release.
25 Apr 2017
Cisco offers a daily list of the million most queried domain names from Umbrella (OpenDNS) users. I had some time this weekend so decided to spend some time playing around with the data to see what I could find so I spun up a lightsail server and got to work. Grabbing the file is as simple as: wget http://s3-us-west-1.amazonaws.com/umbrella-static/top-1m.csv.zip You…
We have a new tech talk coming up on May 17th, from our very own Dominick LoBraico. This one is about how to represent configurations with programs. In some sense, this is an obvious idea. Lots of programmers have experienced the dysphoria that comes from watching your elegant little configuration format metamorphize into a badly constructed programming language with miserable…
Learn how to prevent cold start in your Lambda functions with the Serverless WarmUp plugin.
Just a short one. I want to share a simple command to display nicer git log in the terminal. git log has --pretty=format option built-in, we are just going to pass formatting to it. git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' And it looks like this: Then add it to your .bash_profile as an alias (I'm using glog)…
24 Apr 2017
How to easily build a chat app that runs entirely in your terminal using Python.
Problem: Determine if two polynomial expressions represent the same function. Specifically, if $ p(x_1, x_2, \dots, x_n)$ and $ q(x_1, x_2, \dots, x_n)$ are a polynomial with inputs, outputs and coefficients in a field $ F$, where $ |F|$ is sufficiently large, then the problem is to determine if $ p(\mathbf{x}) = q(\mathbf{x})$ for every $ x \in F$, in…
VSCode just released custom workspaces! This means you can customize your text editor layout and style for different projects within a single editor!
23 Apr 2017
This post is an attempt to reduce the number of times I need to explain things in Stack Overflow comments. You may well be reading it via a link from Stack Overflow – I intend to refer to this post frequently in comments. Note that this post is mostly not about text handling – see … Continue reading All about…
21 Apr 2017
Enhanced Analytics & Monitoring for your Serverless Apps with the IOpipe Serverless Plugin - Now in Beta
ServerlessActivate analytics and alerts quickly by automatically wrapping your Serverless functions with IOpipe.
20 Apr 2017
At a customer site, I’ve recently encountered a report where a programmer needed to count quite a bit of stuff from a single table. The counts all differed in the way they used specific predicates. The report looked roughly like this (as always, I’m using the Sakila database for illustration): And then, unsurprisingly, combinations of … Continue reading How to…
There is an overwhelming amount of books available today for UX (user experience) professionals of all levels. In this post I will share the books that helped me get started in UX. The following books got me hooked on the idea of working in UX and educating myself on the topic. They helped me shape an idea of what UX…
It’s often surprising just how much software performance depends on how the software is deployed. All the time and effort you’ve invested in optimization can be erased by a few bad decisions in scheduler policy, affinity, or background workload on a server.
19 Apr 2017
rltm.js is an opensource uniform API for real-time messaging, easily swap between Socket.IO/PubNub for bidirectional event-based communication.
18 Apr 2017
Introduction Tribbles originate from the planet Iota Geminorum IV and, according to Dr. McCoy, are born pregnant. No further details are given but we can follow Gurtin and MacCamy (1974) and perhaps recover some of what happens on the Enterprise. Of course, age-dependent population models are of more than fictional use and can be applied, for … Continue reading Trouble…
How to process an image URL with the AIception image recognition API and return the identity of the image in real time with PubNub.
Welcome to the jOOQ Tuesdays series. In this series, we’ll publish an article on the third Tuesday every other month where we interview someone we find exciting in our industry from a jOOQ perspective. This includes people who work with SQL, Java, Open Source, and a variety of other related topics. I’m very excited to … Continue reading jOOQ Tuesdays:…
17 Apr 2017
A general overview of HIPAA, and why it matters for any real-time messaging platform to send and receive ePHI data in real time.
I am a huge fan of Tim Tomes and his Burp Suite Configuration Suggestions blog post. The problem is that I only use Burp a couple times a month and end up facing this screen and have to re-configure burp on every launch: So I built burpsettings.json that: Disables Browsers XSS Protection Disables Burp Collaborator Server Disables Intercept by Default…