Continue your download when internet connection breaks down

It’s been a long time since I last used a really unstable internet connection. Currently my home internet speed is quicker and more stable that the one on my current job.

Here is the situation that I found myself in.
Because all the people at my job share a 15/15 Megabit per second up/down link the internet is really slow and breaks all the time. I won’t even go into why do I have to open up a VPN on a local network that should be trusted.
From time to time the VPN tunnel or internet connection just dies on you. Leaving you with with a partially downloaded file. For an example Visual Studio 2015 .iso image.

You must be thinking? Well it’s 2016 and internet connections should be quicker and faster if you work in IT company. Well, guess what… that’s not the case here.

Solution is to use wget command line tool. I got mine via portable apps directory. Once downloaded and ‘installed’ you will find the binary that you need in \WinWGetPortable\App\winwget\wget\ folder. Copy it in your download folder for quick later use. Open up command line and position yourself in the download folder. We are going to use two switches. One is -c, it tells the wget to continue from where it left (if the server permits it). Other is –limit-rate=xyz, it limits the download speed.

wget http://domain.com/path_to_the_file -c –limit-rate=xyz

More about the switches can be found listing the help via command line, or in online manual.

Migrating from 14.04 to 16.04 Ubuntu server

Yep, finally did it.
Started the migration of my personal server.
Broke a lot of stuff, fixed even more, and there is more work to do.

I’m really surprised how fast is PHP 7,
and how HTTP2 module on Nginx 1.10.0 makes a lot od difference.
I also moved from 64-bit to 32-bits. Doubt that I’ll ever use 4+ gigs of RAM on my DigitalOcean instance.

There is one thing still bothering me. On old server sendmail works, on new one I wasn’t able to make it work. Google just ‘ignores’ my mail.
I’ll probably try with another MTA.

Finished investigating what has to be done for windows forms mono port

A quick write before I lay down and go to sleep.

An application that I was playing around with is happily running inside hyper-V linux Mint machine.
Suprisingly I tried on two differend linux distributions (Ubuntu and Mint).
You probably wonder why? What’s the reason? Well, l2tp ipsec is not working on latest Ubuntu 16.04. Linux Mint on the other hand has no issue with that VPN. And I needed the tunnel to my work place to test ported application.

New stuff that I learned:
* System Beep is not working 🙂
* StopWatch was bringing down the whole application.

Playing with porting Windows Forms application to MONO

So, today I began to port an old .NET 2.0 windows forms application to Linux. Interesting experience during which I learned a few things.

  1. Don’t use pre-build and post-build CMD scripts.
  2. Special folders like %APPDATA% are Windows only.
  3. If you are using web browser control you will need to replace it.
  4. Getting stuff from registry is also not happening (there is none on linux).
  5. Latest version of Monodevelop is targeting .NET framework 4.5

I stopped with porting because latest version of Ubuntu 16.04 does not support l2tp/IPSEC. And I need to tunnel to work to test it out completely.

Implemented TCP protocol into Statsd C# Client

I have been working on TCP protocol implementation for Statsd C# Client.
It’s a nice package and at the time of writing it has been downloaded 34,668 times according to Nuget gallery.

This nuget package is interesting because it’s working with .NET 2.0 and onwards. And at my current place of work we still use Visual Studio 2008 for one legacy project. Guess which .NET version it’s usng?
We had problems with UDP packets being lost so I made a TCP implementation and did a Pull Request.

There is still one more thing I would like to do. Some kind of a load test to se how the code handles heavy load, and maybe async?

How to setup InfluxDB, Chronograf and Telegraf for development

InfluxDB, Chronograf and Telegraf are part of TICK stack from InfluxData.

To install it on Ubuntu you could use apt-get package manager, or install it via .deb package. I prefer the second method.

You can find install instructions on their download page.

After installation there are two config files you have to change a little to make things work.

First one is located in /opt/chronograf/ under name ‘config.toml’. Inside you have to expose Chronograf to public internet (see picture).

ChronografConfig

Second one is located in /etc/telegraf/ under name ‘telegraf.conf’. My advice would to first to comment everything you don’t need, and then uncomment stuff you need. In my case I needed Generic TCP listener (see picture).

TelegrafConfig

After that all you need is to start the required daemons in usual manner.

sudo service influxdb start
sudo service telegraf start
sudo service chronograf start

Chronograf is accessible via port :10000 (http://127.0.0.1:10000)

After opening Chronograf web interface you will have to setup InfluxDB server. Picture below should be sufficient for you to complete that task.

ChronografInfluxDBSetup

You are done. Now all that is left is to start filling InfluxDB time-series DB with some data, and visualize it on Chronograf interface.

How to setup Ubuntu on Hyper-V machine

First we are going to download new Ubuntu image.

Lets see what are recommended system requirements.

  • 2 GHz dual core processor or better
  • 2 GB system memory
  • 25 GB of free hard drive space
  • Either a DVD drive or a USB port for the installer media
  • Internet access is helpful

Open a Hyper-V manager and create a new Virtual machine with above requirements.

UbuntuHyperVSettings

Be sure to disable Secure Boot option if you choose to use 2nd generation of virtual machine.

Streaming as you code

If you haven’t noticed I have placed a new page on this blog called “Livecoding TV Streaming“. Every time I do open source or some kind of a personal project I will stream it there.

I had the account on Livecoding more than a year, but only recently after getting a good internet connection I am able to stream.

At the moment I’m still setting up the development environment. After that you will be seeing more tweets, and post summaries of my coding sessions.

Hope you will drop by and say Hi!

Ditto copy/paste manager

Ditto Copy/Paste Manager

I use this tool on a daily base. Can’t imagine how I worked without it. It’s a little tool that sits in your tray and waits on you to copy stuff. From images to text. Everything is saved and later (few clicks and copy and paste later) you can search for it and paste it again.

I think it’s a kind of tool that boosts your productivity.

Link:
http://ditto-cp.sourceforge.net/