Git Through Proxy Server

Monday 11 May 2020

As of a few days ago they must have changed something in the corporate proxy server at work because all of a sudden no one could push or pull to git remotes. I was getting error "fatal: unable to access [proxy server address]: Timed out"

After much frustration, it turns out there was a fairly simple solution. I had http_proxy and https_proxy environment variables set to the proxy server. If I set an environment variable "no_proxy" with the values of the domains I need to connect to with git everything works fine.

Labels: git
6 comments

Javascript and React

Saturday 15 February 2020

In university I was a TA for what they called "third stream computing," which was basically simple computer programming for non-CS people. We covered things like Hypercard, HTML and Javascript, which at the time was limited to things like showing alerts and validating and submitting forms. I think that the idea of Javascript as a very simple and not very powerful language has stuck with me through the years, even while Javascript has been maturing and advancing enormously.

A few weeks ago I decided one morning to spend an hour going through a ReactJS tutorial, because I keep hearing so much about it. After about half an hour I stopped the tutorial and starting rewriting something I was working on in React. Since then I've been doing any web-related work in React and re-writing other web stuff I've previously done in React.

Javascript frameworks like React are going to completely change web development, instead of the back-end serving HTML the back-end will now serve JSON through APIs and the front-ends will probably mostly be Javascript. And in my opinion that's a much better and more efficient way to create interactive websites. Not only is it faster to load and render data on the front-end, but it's much cleaner in terms of code and separating functionality. 

Labels: javascript, react
3 comments

VAE GAN

Sunday 08 December 2019

I had been trying to train a version of VAE-GAN for a few weeks and it wasn't working as well as I had hoped it would. I had added an auxiliary output to the discriminator which was attempting to predict the 40 features of each image provided with the celeb-a dataset as suggested in the VAE-GAN paper and I was scaling that loss to try to bring it in line with the GAN discriminator loss, but I was doing that incorrectly so that loss ended up overwhelming the GAN loss. (I was summing, rather than averaging the losses, and the lambda I was using to scale the loss was appropriate for a mean loss, but with 40 features the auxiliary loss was 40x the GAN loss at base, so I needed to divide the lambda by 40 to get the effect I wanted.)

After having corrected that error I am finally making some progress with these models. Below are sample images from two models I am training. The first outputs images at 160x160, the second at 128x128.

I guess the moral of this story is if something isn't working the way you expect it to, double check your math before you continue training it!

Labels: python, machine_learning, pytorch, gan
2 comments

Archives