Categories
Computer Science

Setting up your DEV machine in ONE script

A new computer is great ūüíĽūüéČ ‚Äď It’s a clean slate. It’s snappy. It’s great… but it is missing all the tools I rely on every day! My work requires me to jump around in a variety of tools and technology stacks, hence I need to install a lot of different tools and be able to support different development environments.

Existing package manager for CLI tools

Over time developers load command line tools like people are buying toilet paper these days. From maven, via tl;dr, stopping at kubectl to tmux. We use all of those little nifty tools. Hence setting up a new machine can seem scary task at times, but fear not! For CLI tools we solved that problem long long ago with Homebrew, or as you probably know it: brew
(The windows folks probably know Chocolatey)

You can install maven for example by running: brew install maven

Fear not! The same tool that installs CLI tools can install (almost) all our applications!

me

Brew can do more!

Categories
Computer Science

Set up GitLab CI with an iOS project that uses Cocoapods

We all write tests for our applications and keep them in version controlled systems like GitLab or GitHub. However, how can we configure GitLab to run Unit and UI tests for us?

I couldn’t find a lot of documentation explaining how to set up continuous integration for iOS on GitLab, therefore I am writing this article.

Victor Peschenkov explains in his article how to use GitLab CI with Fastlane. My article focuses on how to run everything yourself.

Categories
Software / Games

Deploy static websites using GitLab CI

One of my favorite tools of 2017 is GitLab. I guess my enthusiasm about it even helped convince my company to switch over to GitLab. In this post I am describing how to automize the deployment of mlp.skofgar.ch using a GitLab CI Pipeline Job.

GitLab offers an one-stop solution for almost¬†anything‚ĄĘ that we might need as a software developer. There’s a ton of bells and whistles from issue tracking to continuous integration (CI), continuous deployment (CD), monitoring. GitLab could easily replace Jenkins, Jira, GitHub, wiki systems, bug trackers and deployment monitoring services. It even integrates with Kubernetes.

Enough with praises ‚Äď I recently cleaned up my neural network project¬†that I worked with Camila on and wanted to facilitate the deployment process. However, since I don’t run a large container management system and don’t control all the details of the server I was going to put it on (my website is hosted by Cyon), I needed a different way.

Categories
Photos

More panoramas

Oregon

 

Around Mt. Shasta

Panorama Tutorial

Categories
Photos

Columbia Basin – 360¬į Farm

I was visiting family in Washington and created the following 360¬į panoramas with my Drone.

The first shot was taken with an altitude of 500 meters above ground. It gives a brief overview of the area:

The second shot is just on top of a workshop:

 

Categories
Apple, iPhone, Mac UI/UX

Apple Music improvements for iOS 11

Apple Music is a cool streaming service, which I have been enjoying for a while now. Even though the service is well done, the integration into the Music App on the iPhone could be improved. With WWDC 2017 and iOS 11 coming up, lets look at what could change.

Some of my major issues and ideas on how they could be improved are:

  • In case of a poor network connection I would like to play songs that are on my phone. Therefore:¬†Show which¬†songs are on the¬†phone vs in the cloud. I don’t really need to know if I¬†“own” the song vs or if it’s a cached “streamed” song.
  • The custom stations are great, but sometimes I would like¬†to add the one song. Therefore:¬†Allow songs to be added to Up Next while listening to a station. ¬†Stopping the station, playing the song and then restarting the station provides a bad user experience and is also confusing. Since I can skip songs in the station it would be great to also allow insertion of songs.
  • Nowadays a good search is the goto than browsing through thousands of songs. Therefore: Instead of having the search in a separate tab, just put it everywhere as a global search. Such as putting it¬†next to the title or as pull-down.
  • Some songs are not available for streaming but can be purchased. Therefore: When searching, also include songs that are¬†only available for purchase. It would be very useful to know about available purchasable¬†songs and would prevent users of having to switch to the iTunes Store and search again manually.
  • Make Up Next (or another feature) more prominent.

Design proposal for improvements of Apple Music in iOS 11
Design proposal for improvements of Apple Music in iOS 11

What do you think about my ideas and suggestions? What would you like to see improved in the next version of Apple Music?

Categories
UI/UX

DailyUI #003 – Landing Page

Well, I definitely slacked a little bit with the UI-challenge, but I finally got back to it!

Challenge #3 asked to create a landing page. I chose to try to work on Delta‘s homepage (no pun intended). I did not change their interface terribly, but here are two things I would like to highlight:

  1. Instead of many links I propose the usage of a more¬†universal search-field. Enter a flight-code, a question or even a ticket number and it should try to find relevant information for you. Sure, you can use Google for that, but why shouldn’t a big company’s website be able to offer a smart site-wide search?
  2. It’s an airline, so why not show a plane ‚úąÔłŹ¬†on the landing page ūüėČ
  3. Only ask for information you¬†cannot derive¬†‚Äď I know this idea has some drawbacks, but what if a¬†user is only asked the destination they would like to fly to? Maybe a previous page¬†visit¬†gave us¬†the departure airport or it can be derived from the users current location. ‚Äď Of course we should allow the customer to change this information in the process.

Please let me know what you think and where I can make improvements!

Image for UI/UX challenge showing a redesign of Delta's website

 

Categories
Computer Science UI/UX

ID3 Decision trees ?

As part of the Machine Learning class in (CIS 678) at GVSU, Camila and I¬†created a decision tree tool that¬†analyzes and processes a data-set, where each entry has a different combination of attributes and an expected¬†outcome.¬†The system¬†then finds the ¬ębest¬Ľ attributes, that allow deciding which¬†outcome will occur with the least amount of¬†questions,¬†for previously seen or ¬†new data.

The website & tool takes data-sets in the form of a simple text-file, then parses & processes it and finally creates a decision tree ? based on that data. Please check it out and let us know what you think and how you like it.

The tool can be accessed on this sub-site.

 

Tree example

Categories
UI/UX

DailyUI #002 – Credit Card Checkout

Today’s assignment was to create a credit card checkout.

To give myself a better context, I decided to checkout a monitor and took an existing online-shop to help guide¬†some of my¬†decisions (you can guess which one it is ūüėČ ).¬†Please let me know what you like and what you think needs improvement.

Day 002 - Credit Card Checkout

Categories
UI/UX

DailyUI #001 – Sign Up Screen

Hello everyone,
Today I completed my first DailyUI-Challenge #001. The task was to create a Sign Up screen.

My idea was to make it as simple as possible. Consequently I combined Sign Up and Log In. First it would start by letting the user add their email address. Then, if they already have an account it would then prompt them to enter their password. Since the user sam.fisher@mymail.com does not have an account yet, a confirmation-mail will be sent to him, to verify that the provided address actually is controlled by him.

Being able to show, whether a user needs to Sign Up or Log In, implies that the website discloses, if an email account already exists. While this brings certain drawbacks it might be okay, depending on your website.
Please let me know how you like it!

Sources: