tsubik@gmail.com

Tomasz Subik
Software Engineer

Make your Ember.js web app more progressive - part 3: Offline data

There are times when you have limited access to the network, whether you are on a trip around the world not willing to spend lavishly on roaming services, or on a train with internet connection breaking all the time. This is the third part of the series on how to make your application accessible in those moments. The previous part was about caching application assets, so you don’t need network access to run an application consecutive time. Today, another important aspect, so without further ado, please enjoy, guide how to keep your data offline.

Read more...

Make your Ember.js web app more progressive - part 1

Anyone who follows the latest trends in front-end technologies probably came across the term “Progressive Web Apps”. It’s not a new concept, but the latest Google I/O conference shed new light on it and gathered extra technologies and libraries which could be helpful to make apps more “progressive”. I want to show you how with just a little effort you could start applying those concepts. This is the first part of the series in which I will present a couple of enhancements you could pick up.

Read more...

Setup ESLint for your Ember project

I haven’t posted anything for months, and I want to change that soon. But, as my time is limited recently I want to start small. Just a quick tip for today. I have been struggling with some obstacles when switching from jshint to eslint in my Ember projects, whether due to updated Ember library, cli, or some other not so well documented changes. However, now it seems to be a really easy job to do.

Read more...

Emacs for a Sublime Text user

A few weeks ago I decided to switch most of my development work to Emacs. Let me say it upfront, I don’t want to take a part in any “holy war” around which text editor is best or whatever. I just want to share my experience here, how did that switch look like from the standpoint of a ‘typical’ Sublime Text user.

Read more...

Retain old family photos using Node.js and ImageMagick

Last weekend I decided to push forward an idea which has wrapped around my mind for a very long time. My family (I guess like almost everyone’s) has a lot of photos, notes, documents, etc. A lot of memories, packed into albums, envelopes, frames, or hidden somewhere between books on the bookshelf. Pictures fade or lose quality over time. That’s why I decided to scan them, but as there are a lot of them, I wanted to automate the process as much as I can.

Read more...

Setting up Circle CI for Cordova plugin

Recently, I have been struggling with setting up a continuous development server for my Cordova plugin (cordova-plugin-geofence). I had been already using Travis to kick off tests in iOS environment for some time, but android also had been screaming for attention long enough. I decided to go for Circle CI as my android tests savior. Anyway, not everything went so smooth, that’s why I’ve felt compelled to share my solution with you guys.

Read more...

Ionic geofence example application

For a month or two, I left the .NET world and spent more time exploring new horizons, especially mobile development stuff. I had an idea for a mobile application and now have time to make it come true. After initial research, I decided to build a hybrid application meaning the whole thing runs inside a WebView component on the device. That approach allows me to use a javascript library like angularjs. The last thing I needed was a CSS/JS framework to manage visual layer and a friend of mine came with help suggesting that I should look at ionic.

Read more...

Visual Studio database project migrations

Visual Studio Database project is a good way to quickly get your database under a source control. You will find it very useful especially if your system has a large database schema with a huge pile of stored procedures, functions, views or other database centric stuff. Unfortunately, the deployment strategy brought with it is painful and detached from the reality. Automated migration of the production database to the latest version is, hmmm…., I won’t say impossible, just hard. When I read about it, it souded more like fixing sinking submarine with your bare hands. Some people use roundhouse which is a very nice project to manage database migrations using differential scripts. Below you will find some pros and cons of using both solutions.

Read more...

Generate migrations for DB projects - automate Visual Studio with powershell

Recently I was working on providing a database migrations solution for a quite large .NET learning management system. It was a shame that there was nothing to automate process of updating production databases, and everything must have been done manually. We are using a custom ORM solution, VS Database project to keep database schemas in source control and factories to populate databases with static and some test data. Schemas are large - contain hundreds of tables, views, and thousands of stored procedures which is why when I was looking for a database migrations solution a good maintaining of updating changes in procedures was a must.

Read more...

Sass with ASP.NET MVC 4 - Twitter Bootstrap example

Many times if I look at css stylesheets of middle and big systems I tend to work with they just make me cry. Total chaos, code repetition, basically too much CSS. That’s why CSS preprocessors were invented. In the .NET world, the most popular right now is Less. However, for a long time, there is another player on the market - Sass.

Read more...

Simple jQueryUI DialogManager

Recently, I’ve been working on structuring and refactoring javascript code in a middle-sized application. The application was extensively using modal popups, and the design allowed to stack popups on each other. Many of them were just created on div elements that already existed in the HTML markup. What I thought would be a better idea was to create div elements dynamically only if I wanted to show a dialog. The next thing I’d like to achieve was using a default configuration for created dialogs. What’s more, I wanted my div element destroyed after closing the dialog.

Read more...

Powershell script to bring your publish to the next level

How many times during the development stage, your project file breaks after the merge? Everything looks great until you deploy the app to test or production server(sic!). You finish your work, go home to spend a great evening with your girlfriend or friends, but the next day, while checking issues reported by the quality team, you might see something like this:

Powershell_01

Read more...

New personal website released

I finally found some time to refresh my personal website, yay! To be honest, nothing has changed here for years and my blog was already long dead. Even if I liked the old design I have decided to make some definite changes, starting fresh is always a good idea.

Read more...