FERDY CHRISTANT - DEC 18, 2014 (03:51:20 PM)
In the period 2004-2008, before dedicating myself so much to JungleDragon, I actively developed a few smaller open source projects which I shared on a custom site called s3maphor3.org. Yes, I know it's a weird name. Since then, further development of these projects have been halted. Both the site and its projects have slided into irrelevance so I decided to retire it.
Not all is lost though. If you for some obscure reason still have an interest in these projects, I have moved them over to my Github account:
- TagDragon (jQuery autosuggest plugin)
- Blogo (Lotus Domino blogging tool)
- Blogo.NET (ASP.NET blogging tool)
- PIMB (PHP Instant Messaging Bots)
They are basically in an archived state, meaning on very limited to no support from me. Each project has a detailed manual though, so you should be able to help yourself. A special note on TagDragon: this used to require a mandatory donation, but is now entirely free.
FERDY CHRISTANT - DEC 16, 2014 (07:40:17 PM)
7 years ago, when we moved to our current house, I put a lot of effort into setting up a family server. It concerned a powerful Dell PowerEdge 1900 with Debian as the OS. I named it "Diablo". It has been a very useful server, both for its file sharing and for its many other services, primarily in LAMP development.
When I cleaned up and improved our home network two weeks ago, I also installed a new 4TB NAS. Hence, file sharing wasn't needed anymore on the home server. Given the age of the server, I figured it was finally time to retire it.
However, it has a lot of services on it that I depend upon, mostly for JungleDragon development. This includes Apache, MySQL, PHP, SCP, SSH and Subversion. My idea was to create a new VM that has the same services and just run it from hy home desktop. The only thing I'd lose was the always-on aspect, but for development that isn't a big deal.
Last weekend I finished the process and I could finally turn the server off for good. It may get a 2nd life as I will be donating it to a person that refurbishes hardware and makes it usable to poor families and small businesses.
Anyway, as of now I will be using the VM, which I named "Lucifer". And I'm loving it. Removing the old server saves space, energy, money and noise. I also love the flexibility in taking snapshots and easily backing up an entire machine. Any effort I've put into creating the new VM, will be put to good use, as it can be reused over and over again.
Below I'll share some notes on how I set up the VM and which choices I made. It will not be a full tutorial, just some high level notes.
As virtualization software I used VMWare Workstation (which is paid). It can be done with the free Player edition but I like the added features, such as the snapshot manager.
I've chosen Debian 7 (stable) as the OS, mostly because I am used to this system and it simply is rock solid. I simply downloaded the DVD ISO and pointed VMWare workstation to that file in order to start the installaion. During installation, I made pretty standard choices. The only explicit choice I made was to include SSH, SCP and Apache.
I allocated 4GB of RAM (out of 16GB on my desktop) to the new VM and 100GB of disk space. As for network mode, I started out with NAT, but came back to this later on. More on that below.
Once Debian 7 powered up for the first time, it is time to install VMWare tools, these give additional control and ease of use regarding your VM. In a Linux system like this, it is a matter of untarring a file and running it.
From my host OS (Windows 8.1) I tested SSH using Putty and SCP using WinSCP, both worked out of the box. Sweet.
In order for me to do development on this VM, I prefer my Windows-based IDE, so I need a file share to the VM. For this I installed and configured Samba. I pretty much followed this tutorial, after which I could succesfully map a drive in Windows.
Apache was installed based on my choice during the OS setup, but PHP was not. Luckily it is installed with a single command:
apt-get install php5 php-pear php5-mysql
I really love Debian package management. It has only gotten better.
Installing MySQL is equally easy, yet it requires a few more additional steps. After installation I binded the MySQL to the public IP of the VM, in order to make it accessible outside the VM. Another step required to enable remote access is provide the correct grant rules in MySQL's internal users table.
With remote access working, I used Navicat to transfer databases from the old server to the new server. This is a great feature that saves a lot of import and export jobs (that may go wrong due to the wrong order of statements).
To manage the databases, I'll use Navicat. But for completeness sake, I installed PHPMyAdmin as well. This too is a single command.
As said, Apache was already installed in the initial installation, however I discovered an essential module missing: mod_rewrite. I often use this in .htaccess files. This is when I learned that Apache has a very friendly utility to install and enable mods: a2enmod. Just run this command and pick what you need. It saves a lot of manual work in config files.
By now I had a basic LAMP setup working. But we're not there yet. One feature I absolutely cannot live without is remote debugging on PHP. This requires the installation of Zend Debugger. I struggled a bit with this, since you need to find the exact version required for your choice of architecture, OS and PHP version. As my PHP was newer than the target version, I had to try out a few versions. Once correctly installed on the PHP end, you still need to configure 2 files to get it to work, but I ultimately managed.
Although on this server I am the only developer, I still absolutely need Subversion for source code management. Out of the steps in this overview, it is the most challenging to install, but easy once you know how. Here's the high level steps:
- Use apt-get to install subversion and libapache2-svn
- Create a repository parent dir and a users dir
- Create a HTTP user in said users dir
- Add user to a group and give that group recursive access on the repository parent dir
- Set up the apache configuration for subversion in dav_svn.conf
- Create a repository
If all went well, you can navigate to your repos parent dir in a browser and see the repository. You can also try to check out a working copy using a client like TortoiseSVN.
To allow for powerful repository browsing in a browser, I installed WebSVN. This too can be a single command, after which you can customize it to your needs.
By this time I had all services of my old server moved to the new VM, or so I thought. A true test would be moving JungleDragon's development instance to the new VM. After doing that, several things were broken, turns out I forgot a few things:
- As said, I needed to enable "mod_rewrite" on Apache
- I had to install curl, which was missing
- I had to install Imagick, the image management library that JungleDragon uses for image resizing
- I had to change some php.ini settings, in particular the maximum post and upload size
- oAuth, which is used to sign in to JungleDragon using Google, Facebook or Twitter did not work (more below)
That said, email worked out of the box and copying crons from the old server also posed no new issues. The only issue that was remaining, was the oAuth issue.
As said, JungleDragon uses oAuth to authenticate users. The problem with oAuth in this context is that it requires a publicly accessible redirect URL. That means that my VM should a) have a fixed IP b) have that address accessible outside my home network (or better said, within my network and then port-forwarded via my router).
Later on, I discovered that oAuth is not the only reason to give the VM a fixed IP, as a reboot in the guest OS may lead to a new IP each time, handed out by VMWare's virtual DHCP manager.
Hence I went on a journey to have NAT whilst having a fixed IP, with the additional requirement of it not conflicting with my router's subnet. I failed miserably. I've read every article, played with hidden config files, used VMWare's obscure virtual network manager, all to no avail. Every combination satisfied 2 requirements, but not all 3.
I started reading on "Bridged mode", which makes a VM really part of the home network, instead of just virtually. Again I did not succeed and upon further investigation it turns out that the VM bridged network services were not installed on my network adapters, which is a typical Windows 8.1 problem. Deep in the night and in desperation, I made one more attempt after reading a post of somebody claiming a VMWare reinstall fixed his problem. And guess what, after reinstalling and putting the VM in bridged mode, all just worked. The IP is on the network, it is fixed, and it doesn't conflict with my router.
Some closing words on the VM: I document every single step that I make in great detail. The effort I put in now will make this a usable VM for years, and there will be a point where you will forget how it all works. In addition, I made it a habit to create a VM snapshot before any potentially destructive move on the guest OS, so I can always go back.
Anyway, that's it. I'm happy with the new VM and equally happy to retire the old server. And as a truly final remark: I consider it amazing how powerful open source has become. This entire stack is free of charge. We should be grateful for that.
Update: one more thing I just did is to try to automatically sync the projects folder of the VM (about the only thing dynamic, containing source code) to my new NAS. I'm using Synology Cloud Station for it. I'm still evaluating how it works, I'm particularly interested in what happens when it cannot sync due to the VM being offline.
FERDY CHRISTANT - NOV 26, 2014 (02:54:29 PM)
Having returned from a trip through Sri Lanka last week, luckily I have a few more days of leave, which I'm largely spending on processing the large set of photos. Although I share them in small batches on www.jungledragon.com, I still need to process all of them at once, as Henriette will make a print album of it for family.
Since most photos were taken with my D800, which produces 50MB RAW files, I was looking at about 200GB of photos. After several years, this finally made our main storage solutions inadequate (home server and an external USB drive). Both have a 1TB capacity, so it was time to upgrade.
As a solution, I was looking for a simple, low cost NAS solution with great capacity. I settled for the Synology NAS DS115J. It is one of the cheapest models, yet our needs are simple enough. It is a single bay NAS, which I supplied with a Western Digital Red 4TB disk ("Red" means it is NAS suitable). The combination works fine, and installation is a breeze. I really like the browser-based config panel of Synology, although most features we will not use. I also like that this NAS uses very little power.
Our home network was set up 8 years ago, so it was time for a review. I discovered the main limitation being the cheap switch in our office, whereas the rest of the network consists of Gigabit capable devices and cables, this switch was a 10/100 switch only. I replaced it with an equally cheap 1Gbps switch, the TP-Link TL-SG1005D.
I tested the effect of this replacement using this program. It came in at about 0.8Gbps on average, meaning the network cap due to the old switch was removed. As a more practical test, I copied some big files from my computer to our new NAS, which happened at about 65MB/s, again above the previous cap of about 10MB/s.
Note: Initially I was in anger as my first test failed. I copied some data from my server to the NAS only to see the 10MB/s still in place. That was not a clean test, however, as it was the server itself that is capped at 10/100 ethernet. It is old and has an old NIC.
Whilst at it, I also did some cleaning up in our home installation, where all cables enter the house. I removed the telephony parts as we no longer use our fixed line, not even over the internet. Finally, I got rid of one switch entirely as I could combine it with the 4 ports of the router we have.
Feeling confident in these upgrades, I then looked at an old problem. My router, a Linksys E1200, will severly hamper download speeds of my iPhone5 when I set the router to mixed traffic (meaning G and N). The solution so far has been to set the router to G traffic only. It fixes the iPhone problem but obviously restrains all other Wifi traffic from ever using N speeds. I was hoping that a newer iOS version by now had fixed this problem, but it doesn't, as it is a router problem. I discovered this gem of an article, which explains to disable the QoS feature on the Linksys. This will make the problem go away, blazing download speeds both on the iPhone and other devices.
One more thing
The only other pending upgrade is to retire our server. It is running Linux, Apache, MySQL, PHP, Subversion. It took me a lot of time to set up but it is aging. I'm thinking of just running such server as a VM on my main desktop, but it will require a hefty time investment. One day...
Tip: document it
I guess it goes without saying but I make it a habit to document every change to our network using a network diagram. I may know now how it all works, but I won't years from now.
FERDY CHRISTANT - NOV 21, 2014 (12:50:42 PM)
Yesterday we arrived back from a 2 week wildlife trip through Sri Lanka. It has been an awesome, intense and great journey full of adventure. The travel report is too large to fit in a blog entry, therefore I have published it as a PDF, which you can view here.
FERDY CHRISTANT - SEP 29, 2014 (08:50:07 PM)
I'm having a small "gear rush". It started with a new tripod (which I love), followed by a teleconverter (which I returned). This 3rd extension to my kit will be the last for a while. I've had this viewfinder for a few days now, and have used it in-house as well as in the field. I'll hereby share some first experiences.
I've learned that how usable or unusable you find this viewfinder entirely depends on intended usage, therefore I'll describe mine.
When the sun leaves this country, as it is doing right now, I'd like to continue doing macro photography. In absence of insects, I tend to switch to more stationary subjects, like plants and fungi. And this type of photography has posed a practical problem, which I'll illustrate using this example:
I think the idea for this photo is great. Two differently sized fungi in a single scene, showing an interesting perspective. The large fungi is in fact not large at all, but looks like a giant in this scene.
As much as I liked the idea, the actual execution is flawed. The composition is not perfect, there's a lot of clutter in the scene, and the focus and sharpness is not as accurate as I want it to be. It could have been so much better. I have entire series of similar images that could have been better this way.
The reason why these photos are not better is not that I do not know how to execute them better, it's because I can't. These photos require me to lay down flat on the forest floor. Next I have to position my neck in such an akward position that it pains me if it takes more than a few seconds. As a result, I rush the shot, so that I am reliefed again. I simply have no time to accurately compose it, thus I do not see the errors. There's other issues with having to lay down like that, other than it looking plain weird:
- I may accidentally destroy other plants and fungi in the process
- It gets me completely covered in dirt, although that can be prevented
- It puts strain on anything I have in my pocket, like my keys and phone
Hence my interest in this viewfinder. If it works, I don't have to lay down anymore. I only need to kneel, and can then take all the time in the world to properly compose the scene.
The first thing to consider is buying the correct Viewfinder for your camera body, because it depends on the type of current viewfinder you have (round or not). On my D800, this DR-5 should work.
Pre-install, I was very careful about the process, and also a little concerned. I've read reviews beforehand of people complaining about this process, and also the potential damage that can take place when the camera is opened, allowing dust to enter.
At least on the D800, there is no issue at all. The standard viewfinder has a toggle, which closes the viewfinder completely. So you first use the toggle, then remove the rubber ring from the current viewfinder. Next, you unscrew the actual viewfinder. Finally, you screw the new viewfinder in place and open the toggle again. The screwing part is a bit confusing, as the DR-5 has two rotating parts. Both the block and the "tube" rotate. You should rotate the block itself, and not use the tube to rotate the whole thing. Rotate the block until it is secured. It doesn't really matter where you start, as long as you end up with the block secured in any 90 degree fashion.
With a component like this, uninstallation is as important as installation. I believe it is a component that you would typically attach beforehand to go on a specific trip, not something you will change 5 times during a trip. Switching will not be as quick as switching a lens. I'm dissapointed that Nikon did not pay attention to detail here, they could have easily designed a solution where the viewfinder also stores the parts of the normal viewfinder, so that users do not have a zillion small bags in their camera bag.
Usage and observations
Here's some random observations from using this viewfinder. One of the first things I noticed is that it is a lot smaller than I expected. It's not a problem, just an observation. Actually, it can be a problem, depending on how you use it.
After installation, the next thing to do is to tune the actual viewfinder to your eyes specifically, which is as simple as using the dial on the handle until the viewfinder looks sharp to you.
The image in the viewfinder itself looks great, I'm not noticing any loss of light, it really is the same viewfinder you are used to, in a different angle. Upon looking through it, one does have to learn the proper distance. I don't know if other people experience this, but when I look through binoculars, I typically start with seeing absolutely nothing, just huge black dots. Only after aligning my eyes properly and having the right viewing distance, I see the actual image. I experienced the same thing with this viewfinder.
One highly underadvertised feature of this viewfinder is the ability to switch to 2 x mode, magnifying the scene by a factor of 2. All of this is entirely optically, it even works when the camera itself is off. You could argue that live view allows for even deeper zooming, but it will not do it in this angle, plus on the D800 the image quality when zoomed in is quite poor. I find myself a whole lot more accurate in focusing in 2 x mode optically, then I do in live view mode, at any zoom level. It is a wonderful feature of this viewfinder, one that really stands out.
As a beginner, you may sometimes forget that you're at 2 x mode, and screw up the composition this way. The quick tip to not forget this is that at 1 x mode, the viewfinder is square, whilst at 2 x mode, it is round.
Another observation is that due to the small length of the viewfinder, anything big attached to the hot shoe (like Flash or a Flash commander) may block you partly when looking downward. It can still work, but it's not convenient. A quick solution is to use the viewfinder diagonally instead.
I also noticed that actually securing the viewing angle is tricky. Sometimes the weight of my head/eyes resting on the viewfinder moves it to a different angle. I'm sure there's a way to truly lock it, there's even lock buttons to the side of the handle, but they do nothing for me. I feel like an idiot for not getting it, but the manual doesn't explain how it works either.
At this point in the review, I can conclude that for my intended usage, this viewfinder works great. It does what it says, and the zoom mode is unexpectedly good and powerful. Kneeling down and looking down in the view finder, I can take my time to accurately compose and focus, and that is what was needed. It's great for ground level compositions. Here's an example from the field:
Although it doesn't look that way, this is a ground-level image, pointing slightly up (using a bean bag). In this scene, I was able to accurately compose, and also focus (which was tricky in this case). You don't have to like the image or my choices, the point is that I was able to make these decisions in a relaxed and accurate manner, thanks to this viewfinder.
So I conclude that this viewfinder shines for that purpose: looking down. Other angles are quite doubtfull. First, you can forget about using this viewfinder upwards. A tiltable live view screen (which most entry level cameras have, yet most high level DSLRs lack) can do such a thing, but this viewfinder can't. The distance between the viewfinder and camera body is too short, thus you cannot fit your eyes into it using this angle. I suppose you could again solve this by using it diagonally, but for sure that will only work or be comfortable on a tripod, if at all.
Using this viewfinder at all when not on the ground or on a tripod is basically not really an option, unless you are really handy and steady. I think it is most (and only) useful on the ground looking down, and on a higher tripod position looking down (if the tripod is lower than you) or side ways, in case of a tripod positioned in some corner.
In other words, if you expect this thing to be as flexible as a tiltable, rotating live view screen, you will be dissapointed. It doesn't even come close to that. If you require ground-level or stationary accurate composing and focusing, however, this viewfinder is awesome. It has a few usability oversights that are all to common in Nikon accessoiries, but it does its core function very well.