Daily UI Challenge - Week 6

Welcome to week 6 of the Daily UI Challenge! We hope you've all had a fabulous holiday season thus far! I certainly had a packed Thanksgiving week, which is why this post will contain fewer designs than we've previously posted, but fear not! That…

Read more...

Daily UI Challenge - Week 5

Happy week 5 of the Daily UI Challenge! Have you noticed a week's gap? We decided to take a break after every month in order to give our creativity a rest. But we're back and better than ever, and ready to show you what we accomplished recently! If…

Read more...

Daily UI Challenge - Week 4

We've reached the end of our first month in the Daily UI Challenge. Over the last four weeks, I've started to notice a pattern in my creations. Many of my designs share a common theme, with similar color, shape, and structural choices. Thanks to the…

Read more...

Daily UI Challenge - Week 3

Hi there, week 3! The Daily UI Challenge is still going strong. Personally, I think this week I've finally started getting into the groove and I'm finding my style. It was also fun to use some pop culture as my subjects this week. I'm enjoying keying…

Read more...

Daily UI Challenge - Week 2

Welcome to week 2! Lyzzi and I have been plugging away, completing the second week of challenges for the Daily UI Challenge. Though we're only 2 weeks into the 100 day challenge, we've already learned a lot about design concepts thanks to the helpful…

Read more...

Daily UI Challenge - Week 1

Cortney and I have both had a strong interest in user experience and design. While Cortney has formal education on the subject (she's currently working towards her masters in Human-Computer Interaction at Iowa State University!), I've been self…

Read more...

Estimating with uncertainty!

Planning, forecasting or estimating software projects in the face of uncertainty never felt comfortable to me. We're given unclear requirements and asked to give precise estimates. Often we do that in spreadsheets with individual estimates per task with a single summed value at the end. We lose the sense of uncertainty and give our clients the false sense of security with a single precise number.

Read more...

Programming Telit modems through an Electron app

We recently completed a project that challenged us to use AT commands and Electron in order to program a Telit modem. Telit modems have a default firmware, but our client wanted to be able to quickly program modems with their own firmware and…

Read more...

Browser-Based Augmented Reality: Lessons Learned & Tips

The words "Augmented Reality" (AR) are synonymous with games like Pokemon Go or Harry Potter: Wizards Unite. For developers, this extends to mobile toolkits and engines like Unity, Vuforia, ARCore, and ARKit. Even we, though, tend to overlook one of…

Read more...

Hack & Tell Sponsor Series: Northwestern Mutual

Our newest sponsor is Northwestern Mutual, one of many partners advancing the Milwaukee Tech Hub movement. Their engineers are very active in the technical community, hosting, attending, and speaking at many of the meetups in the area. The effort…

Read more...

Postgres Full Text Search in SQLAlchemy

Text search is often a core feature of web APIs. Postgres and SQLAlchemy can fill the need without having to add additional technology (such as ElasticSearch or Solr). We can lean on Postgres' pg_trgm to provide "good enough" search in early stages…

Read more...

Employee Benefits at RokkinCat

RokkinCat recently hired a couple new people! While discussing benefits we were given the feedback: "You should do a better job advertising that." So in the spirit of sharing how we run, we're happy to share our current list of benefits. You may…

Read more...

Efficiency with tmux

Looking for an snazzy tool for terminal management (tabs, windows, panel splits)? I challenge you to try tmux. tmux is a terminal multiplexer that gives tight-knit terminal navigation. It also empowers workflow optimizations. If you have experience…

Read more...

Hack & Tell #14

It was a brisk winter day on January 27th, 2018 when a pioneering group of programmers, designers, and makers decided to make awesome stuff at the 14th RokkinCat Hack & Tell. From 9am to 5pm, more than 15 different projects were built between 7…

Read more...

Deploying Multiple Machine Learning Models with Flask and Heroku

Last month, I gave a talk on Recommendation Systems at the Milwaukee Machine Learning Meetup. Using TensorFlow, Keras, and Theano I was able to train and run my model on my local machine, but I wanted to deploy it publicly. I decided to build a web…

Read more...

One Year of Sentry Elixir

As I reflect on last month's ElixirConf, and look towards Sentry's Forge conference, it dawned on me that it's been just over a year since taking over Sentry's Elixir SDK. It's my first and only open source project with any significant amount of…

Read more...

Classifying Text with Neural Nets

Note: This post was the basis of a talk I gave at the Milwaukee Machine Learning Meetup. The slides for it are here. Text Classification with Deep Learning For the past couple of months, I've been working through the fast.ai course on deep learning…

Read more...

Why We Use Dotfiles

Need optimization? Dotfiles to the rescue! Dotfiles are a user-configured repository that allow for customization of a development environment. These custom scripts run inside bash, zsh, or other shells and extends functionality of other softwares…

Read more...

Sentry-Android Deprecation

Disclosure: Sentry is sponsoring the Hack & Tell Today is both a sad and exciting day for me and the Sentry community. I happy to announce that Sentry's raven-java client now has proper for support for Android. I am sad to announce that this means…

Read more...

Building Reasons to Stay in Milwaukee

There is a persistent discussion in the Milwaukee startup community about what is wrong with entrepreneurship here. The Kauffman Foundation ranked Wisconsin the worst state for startup activity in both 2016 and 2015. Since 2010, Milwaukee has lost a…

Read more...

VIM - The Efficient Dev

How do an extra 208 hours per year sound? This would be the reward if one could improve their workflow by 10%. I bet you are thinking "Yeah.. 10%? That is being optimistic." Regardless, pairing VIM with a couple other efficient practices will assure…

Read more...

Guesstimate Anything

Guess Anything for Fun and Profit Estimation is very hard. More often than not we'll do some simple extrapolation or "gut feels" and multiply by a known number. Sometimes we'll get more technical with a spreadsheet. We will do some averaging and…

Read more...

Replacing GenEvent with GenStage in Verk

Last year, GenStage was announced. José Valim gave an excellent talk about it at ElixirConf 2016. GenStage gives more flexibility and power in doing work on a set of data, and makes it easier to do that work in a concurrent and distributed manner. A…

Read more...

Atlassian JWT with NodeJS

If you have been using the Atlassian Tutorials, you may have noticed that most of the examples are in Java. Since Java plugins are becoming less common, a developer can use any stack they please. Recently, I needed JSON Web Token support for our node…

Read more...

Sentry is a Superpower

Disclosure: Sentry is sponsoring the Hack & Tell Software development is often described as a cycle in which changes are planned, implemented, and verified. This cycle exists for the product being developed, but also for each developer making changes…

Read more...

Reflecting on the Milwaukee Slack

About a year and a half ago, RokkinCat started a Slack room in the hopes of improving communication in Milwaukee. As we said then, our goal was to lower the barriers needed to find and talk to people with similar interests across the city. A decent…

Read more...

Market Basket Analysis

Recently, I talked with someone who was working to explore products that are often purchased together in the hopes of finding valuable patterns. This is usually termed association rule learning or market basket analysis. It is often used by…

Read more...

Exploring Milwaukee Police Call Log Data

At RokkinCat, we've been attending and working with the Milwaukee Data Initiative to see what data the city has, or could have, and where we can take it to improve Milwaukee. One of the first newer sources created is from the scraping of the…

Read more...

Having Some Fun with Postgres 9.6

Postgres 9.6 and PostGIS 2.3 were officially released last week. A lot of great additions are included, but the most interesting to me are the changes allowing parallel execution of PostGIS functions, table scans, joins and aggregations, and full…

Read more...

Generating Fake Data for Postgres in an Elixir script

When playing with new features in databases, it's often helpful to be able to have a meaningful amount of data, to get closer to at least approximating a real workload. My use case revolved around needing to generate random phrases, as well as a…

Read more...

What even is a Hack & Tell?

Finding the time to work on a personal project can be difficult. We all have busy lives, family, friends and the last thing we want to do is spend a weekend sitting alone staring at our computers. A Hack & Tell is a full day where you get to work on…

Read more...

Postgres Location Searching in Ecto

This post will somewhat resemble a post I did on Postgres Full Text Search in Ecto, but instead we'll go over how to work with locations in Postgres and Ecto. Location-based filtering and ordering is a very common need, and Ecto with Postgres can…

Read more...

Mutual Friendship with Undirected Graphs

Welcome to a brand new blog series! Each post will consist of a computer science algorithm and a real world application. Additionally, if you are interested in machine learning and have not yet seen the previous series, go check it out! Todays topic…

Read more...

Parsing UDP in Elixir with Binary Pattern Matching

code In your (clandestine) consulting work for ACME Spy Corporation, you've been tasked with the following: Listen for UDP packets on port 21337 Parse said messages according to the specification Log the message contents for later review The…

Read more...

Feature Selection

Welcome to the eighth blog in a series on machine learning. Once again, this material is a supplement to the introductory course in machine learning on Udacity. We will be looking into feature selection and how it can affect the quality of a…

Read more...

Natural Language Processing & Categorizing Blog Posts

Welcome to the seventh blog in a series on machine learning. Once again, this material is a supplement to the introductory course in machine learning on Udacity. We will be reviewing the basics of natural language processing as well as categorizing…

Read more...

Clustering and the Stock Market

Welcome to the sixth blog in a series on machine learning. Once again, this material is a supplement to the introductory course in machine learning on Udacity. We will be reviewing the basics of clustering as well as making a real world application…

Read more...

Machine Learning: Regression

Welcome to the fifth blog post in the series on machine learning. This post is a supplement of the Udacity course Intro to Machine Learning. Be sure to check out the course if you find Regression interesting. Discrete Data Up until now, we have been…

Read more...

Decision Trees

Welcome to the fourth blog post in the series on machine learning. This post is a supplement of the Udacity course Intro to Machine Learning. Be sure to check out the course if you find Decision Trees interesting. Decision Trees Decision trees are a…

Read more...

Kernels and SVMs

Welcome back! If you missed the last post, be sure to check out some sweet Naive Bayes logic. So what is a Support Vector Machine? An SVM allows us to classify data in a way that is similar to Naive Bayes, but uses different formulas to yield more…

Read more...

Machine Learning: Bayes

Welcome to machine learning week 2. If you did not check out the introduction yet, go check it out. It is about cool scatterplot stuff -- don't worry, this post will still be here 😊. Once again, this content is a supplement to the Udacity course on…

Read more...

ML Introduction: Scatterplots

Hey, my name is Jake Robers. I am currently studying abroad in the Czech Republic. While I am enjoying Prauge, I will also be learning about machine learning through a free course on Udacity. I will paraphrase what I have learned, and give some…

Read more...

The Circuit Breaker Pattern in Elixir

When running into temporary interruptions when interfacing with external web APIs, I was reminded of an article from Heroku on the circuit breaker pattern. The particular application is developed on the Phoenix web framework and Elixir. A search did…

Read more...

Extending Phoenix Chat App with ETS-based Logs

A good amount of the documentation around Phoenix channels is based on a simple chat application from Chris McCord. The app allows users to choose a username, join a chatroom, and send/receive messages in real time using web sockets through Phoenix…

Read more...

7 reasons why you should come to the next RokkinCat Hack'n Tell

Our next Hack'n Tell is coming up on October 22nd, register now for tickets, if you are skeptical about it read on! 1. The Food burrito RokkinCat provides glorious Chipotle burritos. As well as coffee, pastries, soda, sparkling and still water! Free…

Read more...

Announcing Hack & Tell # 5 - A hack-a-versary

TL;DR - Next Hack & Tell is on October 17th, 2015 at 9am. Sign up here Last October, we decided we didn't want to go to hackathons anymore. It seemed the local events were becoming more and more focused on creating a startup over a weekend and seeing…

Read more...

Hack & Tell # 4

It was a beautiful summer day on July 11th when a pioneering group of programmers decided to sit inside all day and make awesome stuff at the RokkinCat Hack & Tell. We worked from 9am to 6pm to create the 9 projects that were presented. The projects…

Read more...

Monitoring your Elixir Application on Heroku with Librato

One of the most powerful parts of the BEAM ecosystem is that many of the libraries come with industrial tooling and ways to connect. Erlang and by proxy Elixir comes with powerful tools for visualizing processess, messages and mailboxes(queues…

Read more...

Welcome Lyzzi Brooks

Lyzzi Brooks We are very proud to introduce our newest intern, Lyzzi Brooks! Lyzzi is a Software Engineering student at the Milwaukee School of Engineering going into her senior year. She will be working with us on mobile and web applications. We met…

Read more...

Milwaukee Slack Chatroom

Milwaukee has a communication problem. It is amazingly difficult in such a modern era to bust out of your bubble and see what everyone else in the city is doing. We all have our own circle of friends, business partners, and acquaintances but it is…

Read more...

Postgres Full Text Search in Ecto

Text search is often a core feature of web APIs, and Postgres and Ecto can fill the need without having to add additional technology (such as ElasticSearch or Solr) to the stack. We can lean on Postgres' pg_trgm to provide "good enough" search in…

Read more...

We Made a Hack-a-thon Thing - Hack & Tell #3

Bye Bye Eclipse Image courtesy of Alex Foran via gifs.alexforan.com. The third RokkinCat Hack & Tell happened this weekend, and in line with its illustrious history had quite a few awesome projects get made. Participants worked from 9am - 5pm at The…

Read more...

Three Harmful Hackathons

In the past few years, I have attended quite a few hackathons. Over that time period I've noticed three different types of hackathons that each contain inherent flaws which devalue its participants' time. These are: the intellectual property grab…

Read more...

JSON Views in Phoenix

Lately there has been discussion around rendering Ecto models for a JSON style API in Phoenix. I am part of the core Phoenix team, and I typically use Phoenix to build API's. I am here to show you an example of using views to render JSON. Right now…

Read more...

Hack-n-Tell #2 in the History Books

With the second Hack-n-Tell going into the history books, we can say that this was our best one yet! The event was held at The Commons, which turned out to be a fantastic venue since it is an organization geared towards startups. After all was said…

Read more...

Welcome Alex Solo

RokkinCat is happy to announce our newest full time developer, Alex Solo! Alex will be working with us on front end and hybrid mobile application development. Alex was one of the participants at our recent hackathon and built a very neat web…

Read more...

Welcome Jake Robers

Jake Robers RokkinCat is proud to announce our newest employee, Jake Robers, a sophomore Software Engineering student at the Milwaukee School of Engineering. He is joining the team part-time and will be working on hybrid mobile apps and web…

Read more...

First Ever RokkinCat Hack 'n' Tell

Last Saturday, October 25th, we held our very first Hack 'n' Tell at the PKWARE headquarters in partnership with PKWARE and the MSOE FIRST Collegiate Robotics Organization. The purpose of this hackathon was to hang out and team up with other…

Read more...

We Turned 3!

We did it! RokkinCat turned 3 years old today. A huge thanks to all of you We can't party too hard today (we have work that needs to get done) but everyone at RokkinCat just wanted to say thanks to all of you that have helped make this third birthday…

Read more...

Ionic Live Preview iOS App

When working on your Ionic app, nothing is better than testing directly on your phone. Animations, interactions, available APIs are all different on your phone than they are in your browser. It can be a bit of a pain to test builds directly on your…

Read more...

ALS Ice Bucket Challenge

We were nominated by the wonderful people at Savage Solutions to participate in the ALS Ice Bucket Challenge yesterday. We accepted the challenge right away, but had to wait until today to actually perform the challenge. Raising Awareness Amyotrophic…

Read more...

Hacking Atom: Previewing Ionic Apps in your Editor

I wonder if atom will let me open up a web page in a pane... Image by xkcd I've been dedicated to using the atom editor for the past few months in hopes that it eventually gets to a fully usable state (read: has all the hotness one comes to expect…

Read more...

Inconsistent response types with ngResource in UIWebView

While working on a mobile hybrid application, we recently ran into an issue where in some browsers, the correct data was not being returned from our $resource correctly. In desktop browsers it was giving us the expected array of names. But in iOS…

Read more...

RokkinCat

is a software engineering agency. We build applications and teach businesses how to use new technologies like machine learning and virtual reality. We write about software, business, and business software culture.

Want to read more from us?