Things I’ve learnt by killing my CRS

I have read almost every CRS guide that I could find on the internet. Some of them are heavily biased towards a particular brand and make things look so easy! Then why do people across the world complain about it being tough? Because it is! Here are a list of things I’ve learnt through my losses, things most of the guides do not say or emphasize.

Test Kits: (GH/KH, TDS, pH)
The single most important kit you need is the GH/KH test kit. Yes, I know GH can be guessed from the TDS, but first of all, when it comes to CRS, guessing does not bring any good, second of all, read first of all. CRS has a wide range of acceptibility for TDS (90-150, even 200) than it has for GH (4-6). Keeping a TDS of 120 does not ensure your water has the perfect GH for shrimps to molt properly. You should mineralize your RO water to have a GH between 4-6 not for a certain TDS. Then whatever the TDS the mixture reaches, thats the TDS you should aim for always. KH also plays an important role in keeping the water parameters stable, specially the pH. Internet says its okay to have KH 0 but in fact its not. Having a KH 0 means your water is prone to sudden pH swings. Having a KH value of 1-2 is equally important. You should also aim for a pH below 7.0 but this is not the end of the world, slightly above 7.0 is okay too as long as it always remains that way.

RO Water pH:
It is advisable to use RO water for CRS. Dont get fooled by the pH measurement of the bottled RO water. It will read way below 7 but if you keep it in an open place for an hour or two or preferably overnight, it will climb towards 7 or even above 7. Do not ever measure the pH of the water unless its been aged for a couple of hours to 24 hours depending on the water volume.

You should always aim for a soil that buffers the pH of the tank to less than 7. But if your water has a very high KH, the substrate can not help you. Amazonia II buffers the soil around pH 6.5, Africana to pH 6.0 and Malaya to Ph 5.5 approximately. Please note tha you must have a fat (at least 4cm) layer of substrate for the soil to be able to buffer properly.

Temperature:Do not even think of keeping CRS in temperatures above 26C. You will not have much success. The ideal temperature is between 21C and 23C but keeping a stable temperature without fluctuations is much more important than struggling to keep it low. That means, if you can manage to keep the temperature stable at 25C, that is the better option than trying to force it to 22C but fluctuating it between 21C and 26C.

Water Change:
When it comes to CRS, what do we say to frequent water changes? Not anymore! Frequent water changes cause more stress and does more harm than good. If there is one single thing CRS dont like, its “CHANGE”. If your Ammonia, Nitrite and Nitrate reads within the safe zone, dont change water. If you have a good filtration, you could go upto 6-8 weeks without water changes.

Also make sure your water is aged at least a week before releasing CRS into the tank. This means, do a 80-90% water change on week prior to introducing CRS. Check for water parameters one day before and make sure they are stable. This means, your tank water should read:

Ammonia/Nitrite: 0
Nitrate: 0-5
pH: 6.0 to 7.4
GH: 4-6
KH: 1-2
TDS 90 – 150

No planted tank:
It is impossible to balance the need of a proper planted tank and CRS at the same time. Pick one. Yes, your tank better have some plants for CRS, but those should be low demanding plants i.e moss, ferns etc, not resource hungry red plants or hairgrass. CO2 is also a big NO, in fact CRS prefer a O2 rich water.

I would avoid having any kind of stones at all, other than may be those mineral stones sold specifically for shrimps. Rocks and stones may cause the GH instability in the tank and also cause pH swings overnight. However, driftwoods are okay, in fact preferable. Its better to set a dedicated tank up for CRS using a fat layer of substrate, easy low tech plants like moss and ferns tied on branch wood and optionally mineral stones. No fancy rocks, no fancy plants!

Again, CRS do not like changes. Do not put your hand inside the tank, like ever. Use a long twizzers to do stuffs you’d use your hands for.

And now, some pictures of my CRS, which I’ve lost in the process of learning.

Crystal Red Shrimp

SS/K10 Crystal Red Shrimp

Golden Bee Shrimp

Golden Bee Shrimp


Feel something is wrong? Something probably is!

Today I had faced a near disaster. We were to deliver an offline HTML/CSS/JS based web application which was planned for distribution in a major Arab-African event using USB drives. The application itself was pretty straight forward, we had to export and stage data, implement a JSON provider, convert those exported data to JSON and use it inside our application using AJAX calls. Even though the project was small, we had a commitment and a very rigid deadline. There was another company who were waiting for us to provide the files for them to prepare and deliver the USB for the event. I had a junior colleague working with me. For the sake of visibility, we placed the development version of the application in his local apache server and also on our demo server. The project ended very quickly with almost no hiccups. Not even the smallest ones! I was very happy to see it progressing rapidly. But, at the same time I had something in my head telling me something is wrong. The project was too small for me to get worried. We tested the application in different browsers for compatibility and then delivered on schedule. The client was more than happy.

Three days after, the company who were responsible for the USB came back to us with some questions. I was not in the office, so my project manager downloaded the contents which we had sent them earlier and KABOOM! It was not working! Well, it was working with Firefox, but not with Chrome or Internet Explorer. By this time, they must have prepared the USB cards and shipped them to our client! We were at loss!

The problem was in making AJAX calls to local JSON. Both Chrome and Internet Explorer were treating the AJAX calls to the local JSON files as cross-domain calls and it was failing. I quickly got panicked and could not think of a way to make the AJAX calls domain safe without taking the whole thing apart. This glitch got overlooked since were were testing the whole thing from a local apache server and the JSON file was on the same domain (localhost) as the HTML file. I did check the files directly from the file system, but using only Firefox (which was my default browser) and things worked flawlessly. It never occurred to me to check the files from the file system using different browsers since we had them tested in different browsers earlier from our apache servers, both development and demo!

The solution was very simple. Since all those JSON content were static, we just had to copy those into a javascript variable and use it from there instead of making AJAX calls to get them from the file system. We changed it very quickly and made a second delivery. By this time, my PM had called the USB provider and made sure they did not go for mass production yet. So, in the end, this whole thing did not cost us anything, other than sweat and panic!

The thing is, I was not comfortable while delivering the contents the first time but I did not care to recheck the files thoroughly and systematically. When you’re working in the industry for some time, you actually grow a sixth sense which tells you if something is about to go wrong. Do not ignore these feelings, make sure you’re absolutely confident while delivering. If you feel something might be wrong, chances are high that something is wrong! Trust your instinct, it never hurts to invest an extra hour double checking if everything is behaving as they should.

Autorun HTML file from a CD-ROM

I recently came across an interesting project which required to open an HTML file inside the CD-ROM using the default browser on the users side. There are two ways, both are equal in terms of complexity and flexibility.

Method 01:
This uses the standard ShellExecute command.

label=Autorun HTML
action=Open index.html

Method 02:
This method requires you to download a small executable and put it within the contents.

open=autorun.exe index.html
label=Autorun HTML
action=Open index.html

Please note that the above examples only shows a few of the options you can use in a Autorun.inf file. For other possible entries, please refer to MSDN.