Fiddle Salad is an evolution of both the original idea and code base that belonged to Python Fiddle. Now it is really Fiddle Salad that’s driving the development of Python Fiddle, because they share much of the code base.
So this is the third major milestone, which I almost gave up on before I embarked on it. Before I started work on this milestone, actually a day or two before I planned, I suddenly noticed huge, discouraging signs. They came as shocking surprises. For example, I discovered a hidden option in an application I have used often before that had some of the functionality I was going to build. If that wasn’t enough, it was actually quite popular and many people probably knew that feature. As another example, I discovered another application that was more innovative in certain aspects than the application I planned to build. I got still more examples, but they aren’t worth repeating here.
As a habit, I reached for my next plan and the best tools I have available. I then realized that I would be throwing away about 8 months of work and the plans for this month, which worked out so well. Although I had no reason and no incentive at all to work on Fiddle Salad, I did so only because I enjoyed every moment of it. I believe that’s what we are all here for, the very drumbeat of the universe.
In the end, those serious signs got swallowed up by my project, as I managed to either include their ideas or integrate them right into it. Fiddle Salad is really the culmination and peak of all live web development environments, having the best features in all of them and in my imagination.
While wrapping up the Fiddle Salad project and doing cross browser testing, I found that Firefox wouldn’t run my project, at least on a local host.
This was one of the reasons I couldn’t get a stable release all in one shot. I initially thought it was caused by the IP address or the port number, but others report it’s just a problem with not having a domain. So one way is to add a domain mydomain.com in the Windows host file in C:\Windows\System32\drivers\etc.
# Copyright (c) 1993-2009 Microsoft Corp.
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
# For example:
# 188.8.131.52 rhino.acme.com # source server
# 184.108.40.206 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
The changes are applied immediately after saving, and I’m able to run the site locally in Firefox.
While working on the new Fiddle Salad, which required several languages with native Ruby compilers, I downloaded and installed Ruby on my Windows machine. Ruby by itself wasn’t a problem, but when I run gem install rails, some kinks come up, like missing a lib folder in a package. Then I moved on to installing therubyracer, which I guess is an optimizer, but it wouldn’t compile with mingw on Windows. After that, when initializing a rails app, it got stuck on bundler, which I used to install several packages. Like one user said on stackoverflow, Ruby isn’t meant to run on Windows.
So this morning I got ruby set up pretty quick. Just follow these steps:
- Download turnkey rails http://www.turnkeylinux.org/rails
- Install on VMWare Player
- Set Networking to Bridged
- Connect using SSH to the address shown after installation
That last part took a bit of searching on Google for me, because I expected a full Ubuntu installation, with GUI. But the download was only 253Mb. As I thought more about it, it made sense. I was glad how easy it was to set it up in a virtual machine. Once the VM was installed, I installed Rails with gem install rails and set up the build tools.
Update: therubyracer is the Google V8 embedded within Ruby. There is a list of other engines here: https://github.com/sstephenson/execjs