Thursday 11 July 2013

Java Hello World (Console)

This is a short tutorial for your first application in Java. I use Eclipse as software integrated developer environment (IDE), however there are many more (like Netbeans).

Let's start off with basic installation. First thing you need to install is Java Development Kit (JDK). After JDK, you need to install Eclipse IDE for Java Developers.

Open your Eclipse and click on "File"->"New"->"Project". Select "Java Project" and click "Next".



Type in a name like "HelloJava" and click "Finish".


A folder named HelloJava is created on left side of screen (Package Explorer). If you double click on that folder you can see its contents. Right-click on src subfolder and select "New"->"Package". Name it test.hello and click "Finish".


Now your package will appear in src subfolder. Right click on that package and select "New"->"Class". In name field type Hello and check the "public static void main(String[] args)" option. Click "Finish".



After this you will get some code that looks like this:

package test.hello;

public class Hello {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
 }
}


Now add a line System.out.println("This is my Hello Java!"); within main method so  it looks like following:

package test.hello;

public class Hello {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  System.out.println("This is my Hello Java!");
 }
}

System.out.println("Something, something");  is used to print out whatever is contained within quotation marks (in this case it will print out Something, something.

To run the program, click on green "play" button in upper left corner or press CTRL+F11. Result of your program will appear below your code in console.

Now let's add text input. For this we need to create a Scanner. It will save whatever we write in one line and then we can use it to print out what has been saved in it. To do this we need to insert two lines above our current code. First line is the declaration of Scanner with name "scanner" and it should be Scanner scanner = new Scanner(System.in);. You will notice that the word Scanner is underlined. It means you need to import that class to your project. To do this, simply hover over the word Scanner and select "import java.util.Scanner;". Second line is for printing text and it should be System.out.println(scanner.nextLine()); Your code should now look like this:

package test.hello;

import java.util.Scanner;

public class Hello {
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub

  Scanner scanner = new Scanner(System.in);
  System.out.println(scanner.nextLine());
 }
}

Now you can run it, type whatever you wish in console and when you press "Enter" (new line), it will repeat what you wrote. That's it! 



Tuesday 19 February 2013

C# Hello World (Graphic User Interface)

We are going to create a Hello World with GUI (Graphic User Interface) in C#. Like in previous post we start by creating new project.

Click on "File"->"New"->"Project" or shortcut "CTRL+SHIFT+N".

Again, we click on Visual C# on left side, but this time we need to select Windows Forms Application on the right side of screen. Under name type HelloWorldGUI and click OK button. It should look like this:



This creates new project and a screen with a window appears. On the left side there is also Toolbox which contains different elements that can be dragged and dropped on window. If you don't see toolbox on left side go to "View"->"Toolbox" and it will appear.

Select a Button from toolbox and drag and drop it on the window. Then select Label from toolbox and drag and drop it on the window under button. It should look like this:



Now click once on the window and take a look at lower right part of screen where it says Properties. Find where it says Text in list and write down My First GUI. This will change the text in upper left corner of your window from default text (which is usually Form1) to whatever you write in Text field.

Select button that is inside window, go to properties again, and under Text type Click me! in order to change text on the button.

Now select label that is inside window, go to properties again, and under Text type Button not clicked in order to change text on the label. Now go to (Name) property and change it to myLabel. This will set the name of label which we can use in our code. After renaming GUI should look like this:



Next step is double click on button. This will create a function for clicking on a button (click event). Here we get a code that looks something like this:

 using System;  
 using System.Collections.Generic;  
 using System.ComponentModel;  
 using System.Data;  
 using System.Drawing;  
 using System.Linq;  
 using System.Text;  
 using System.Windows.Forms;  
 namespace HelloWorldGUI  
 {  
   public partial class Form1 : Form  
   {  
     public Form1()  
     {  
       InitializeComponent();  
     }  
     private void button1_Click(object sender, EventArgs e)  
     {  
     }  
   }  
 }  


In order to change text on our label we add a line myLabel.Text = "Hello World!"; so that our code looks something like this:

 using System;  
 using System.Collections.Generic;  
 using System.ComponentModel;  
 using System.Data;  
 using System.Drawing;  
 using System.Linq;  
 using System.Text;  
 using System.Windows.Forms;  
 namespace HelloWorldGUI  
 {  
   public partial class Form1 : Form  
   {  
     public Form1()  
     {  
       InitializeComponent();  
     }  
     private void button1_Click(object sender, EventArgs e)  
     {  
       myLabel.Text = "Hello World!";  
     }  
   }  
 }  

Now run it by pressing F5 and try clicking the button.

Finally let's create a counter for our button that counts how many times it has been pressed. First we initialize an integer by putting int counter=0; before public Form1(). This creates a variable that has initial value 0. Inside our button click function - private void button1_Click we need to increase value of counter. This can be done by typing counter++; or counter = counter + 1; - either one will increase value of counter each time button is pressed. Now instead of "Hello World!" we put "Button has been clicked "+counter+" times!" - this will type out text "Button has been clicked" and "times!", but thanks to + sign it will also print out value of counter between those two parts.

Final code should look like this:

 using System;  
 using System.Collections.Generic;  
 using System.ComponentModel;  
 using System.Data;  
 using System.Drawing;  
 using System.Linq;  
 using System.Text;  
 using System.Windows.Forms;  
 namespace HelloWorldGUI  
 {  
   public partial class Form1 : Form  
   {  
     int counter = 0;  
     public Form1()  
     {  
       InitializeComponent();  
     }  
     private void button1_Click(object sender, EventArgs e)  
     {  
       counter++;  
       myLabel.Text = "Button has been clicked " + counter + " times";  
     }  
   }  
 }  

Try running it and keep clicking the button. Your results should look like this:


Friday 8 February 2013

C# Hello World (Console)

This is a short tutorial for your first application in C#. Although there are many implementations of C# (like Mono), I will provide tutorial in Microsoft's Visual Studio.

First we will create "Hello World" console application. These are the steps:

Click on "File"->"New"->"Project" or shortcut "CTRL+SHIFT+N".

New window will appear. On left side you can see different languages. Select Visual C#. This will open a list of most common project types on the right side of the window. Select Console Application. Now we have to name it - type MyFirstApplication in name field. While you do this, solution name will change accordingly. If you want you can also change default location of your project. When you are done click "OK" button.



Again new window appears with your first class already generated. You will see some premade code that looks like this:

 using System;  
 using System.Collections.Generic;  
 using System.Linq;  
 using System.Text;  
 namespace MyFirstApplication  
 {  
   class Program  
   {  
     static void Main(string[] args)  
     {  
     }  
   }  
 }  

Now add a line Console.WriteLine("This is my Hello World!"); within Main method so  it looks like following:

 using System;  
 using System.Collections.Generic;  
 using System.Linq;  
 using System.Text;  
 namespace MyFirstApplication  
 {  
   class Program  
   {  
     static void Main(string[] args)  
     {  
       Console.WriteLine("This is my Hello World!");  
     }  
   }  
 }  

Console.WriteLine("bla bla bla"); is used to print out whatever is contained within quotation marks (in this case it will print out bla bla bla.

To start program click on green "play" button or press F5. This will run your program, however you will most likely not be able to see what it prints out because console closes too fast. To avoid that we will add another line of code that requires user to press enter before console closes. Add this line below the last one
Console.ReadLine(); so that code looks like this:

 using System;  
 using System.Collections.Generic;  
 using System.Linq;  
 using System.Text;  
 namespace MyFirstApplication  
 {  
   class Program  
   {  
     static void Main(string[] args)  
     {  
       Console.WriteLine("This is my Hello World!");  
       Console.ReadLine();  
     }  
   }  
 }  

Now try running it again (F5). This time you can see the printed text and console waits for you to press enter in order to finish running.

Now let's try to enter a line of text and print out the text we entered. For this we need to create a String. It will save whatever we write in one line and then we can use it to print out what has been saved in it. To do this we need to insert two lines above our current code. First line is the declaration of String with name "message" and it should be String message;. Second line is for storing text from whatever line you write on keyboard and it should be message = Console.ReadLine();. Your code should now look like this:

 using System;  
 using System.Collections.Generic;  
 using System.Linq;  
 using System.Text;  
 namespace MyFirstApplication  
 {  
   class Program  
   {  
     static void Main(string[] args)  
     {  
       String message;  
       message = Console.ReadLine();  
       Console.WriteLine("This is my Hello World!");  
       Console.ReadLine();  
     }  
   }  
 }  

If you try to run it it will first request from you a line of text (when you press enter it will finish taking text), but it will print out This is my Hello World!. In order to change that we need to make it print out our message. To do this we simply remove "This is my Hello World!" and write message inside parentheses. Now the code should look like this:

 using System;  
 using System.Collections.Generic;  
 using System.Linq;  
 using System.Text;  
 namespace MyFirstApplication  
 {  
   class Program  
   {  
     static void Main(string[] args)  
     {  
       String message;  
       message = Console.ReadLine();  
       Console.WriteLine(message);  
       Console.ReadLine();  
     }  
   }  
 }  

And that's it!

Thursday 31 January 2013

Science of Freshwater Aquariums (part II)

After discussing starter equipment, we will discuss nitrogen cycle - most important segment of aquarium ecosystem.

Nitrogen Cycle


Nitrogen cycle
Nitrogen Cycle begins with decomposing of organic matter. This includes uneaten food, plant parts and fish feces. When it decomposes it results in ammonia which is highly toxic to fish in aquarium. Smaller part of ammonia is used by plants and greater part is used by Nitrosomonas (Nitrosomas) to produce nitrites. Since Nitrites are still highly toxic it needs to be converted yet again. Nitrospira converts dangerous nitrites into less toxic nitrates. Nitrates are used by plants and are removed from aquarium by water changes.


Step-by.step cycle


Aquarium Cycling


When you set up your new aquarium it is required to cycle it. Cycling means allowing time for bacteria colonies to form in aquarium which help dissolve organic waste into less toxic compounds. This process is usually done without any animal presence (because of high toxicity), however some fish keepers cycle with few fishes that are more resistant to ammonia/nitrites/nitrates.

These are the steps you should take to cycle your aquarium:

1) Ammonia - To start the cycling process first you need ammonia. You can "produce" some by putting some fish food in aquarium and let it decompose.

2) Oxygen - Since Nitrosomonas are aerobic bacteria, they require as much oxygen as possible. This can be done by letting the water pump agitate surface of water and by adding oxygen stones in aquarium.

3) Light - These bacteria love light and if there are no fish in aquarium, light should be kept on all the time.

4) Temperature - Higher temperatures allow bacteria to grow even faster. If there are no fish in aquarium temperature should be kept around 28C (83F).

5) Filter - In order to accumulate bacteria in filter material, filter has to be running all the time.

6) Plants - Plants reduce nitrate and ammonia levels and produce oxygen for Nitrosomonas.

7) Starters - There are bacterial colony starters available in liquid form. These are usually dropped on filter to make starter colonies.


After cycling has started, three phases can be expected:

Cycling of a new tank
1) Ammonia spike - after few days Nitrosomonas will start appearing. This is so called ammonia spike and from that point on, ammonia levels will go down and nitrite levels will go up. Shortly afterwards Nitrospira will appear and start producing nitrate.

2) Nitrite spike - when ammonia levels hit 0, nitrite level will spike. At this point nitrate level will start going down and nitrate level will continue to grow even faster.

3) Nitrite 0 - at one point nitrate levels will go down to 0. This shows that the cycle is complete. Due to high nitrate level around 40% of water should be changed.

After few more days of measuring ammonia/nitrite/nitrate levels and making sure ammonia and nitrite are 0, it is safe to introduce fish into aquarium.



Oxygen Cycle


Finally there is oxygen cycle. This is a very small part of ecosystem balance. Fish need oxygen (O2) dissolved in water in order to survive. This is accomplished by agitation of water surface (with pump), oxygen stones and plant oxygen production (photosynthesis). Animals and plants also produce carbon dioxide (CO2). This is reused by plants for photosynthesis or it exits ecosystem via surface agitation.

Keep in mind:

  • more animals means less oxygen and more carbon dioxide
  • less light in planted aquarium means less oxygen and more carbon dioxide
Bear in mind that some fish need to go to surface and take oxygen (Anabantoidei - Labyrinth fish) like bettas and gouramis, so it is wise to keep the surface area accessible for those fish.






Monday 28 January 2013

Science of Freshwater Aquariums (part I)

When I decided to buy aquarium for the first time, I was pretty lost. I didn't know what to buy and why do I need it. In order to help future aquarium owners I will create my first post on one of my hobbies - aquaristics.

First off - what are the basic items needed for freshwater aquariums?

1) Aquarium - It is generally not recommended to buy bowls since it distorts fish view and is considered to be painful for fish. Bigger aquariums are usually better (although some fish species prefer smaller environments). If you opt for custom made aquarium, keep in mind that thickness of glass depends on volume of aquarium.

2) Lid with lights - In order to minimise vaporisation as well as protect ecosystem from outside, lid is needed to cover the aquarium. Lights are crucial because it provides fishes vitamin D. Different types of light are beneficial for different things - some are good for fish colouration, some are good for plant growth.

3) Filter - Fish don't always eat all of their food and they defecate in the aquarium. This produces deadly ammonia. Ammonia needs to be converted to nitrite by bacteria. Nitrite is still toxic for fish so it has to be further converted to nitrate. Nitrate is not toxic in smaller quantities and can serve as growing supplement for plants. In order to keep aquarium clean filter collects decaying matter and houses bacteria which convert it to nitrates (as final product).

4) Pump - Even though fish live in water they still need oxygen to survive. Without oxygen dissolved in water fish will suffocate. Pump has dual role - first is to stir water so more oxygen can be dissolved in water and second is to drive water through filter so it can be cleansed.

5) Heater - Not all species live in cold waters, some (e.g. Guppy) live in tropical waters. To provide stable temperature at all time is important for fish health as sudden temperature changes can lead to stress, sickness and death.

6) Thermometer - To make sure you have constant temperature in aquarium you need a thermometer.

7) Siphon - Some decay can be stuck among gravel at the bottom of the aquarium. It can be removed with a simple siphon that circulates the gravel and sucks up decaying matter.

8) Water conditioner - Tap water contains chlorine and heavy metals. This is harmful to aquarium organisms and should be removed with conditioner.

9) Bacteria starter - If you are setting up your aquarium for first time, these bacteria needs to be introduced to aquarium in order to multiply and start converting ammonia to nitrate.

10) Gravel or sand - Bottom dwellers prefer sand due to their body touching the bottom which is not as harsh as gravel.

11) Fish food - Be sure you know what your fish eats. Some eat algae, some eat meat, some are bottom dwellers, some swim in mid/top section. Take all that in consideration when buying food.

12) Net - Safest and least stressful way of handling fish is with net. This way it does not come in contact with your hands (which might have some harmful bacteria/fungi on them). For fish with delicate fins use finer nets.

13) Plants and decorations - Plants can greatly improve your ecosystem by consuming nitrate and producing oxygen. They also serve as hiding and resting places for fish. When putting decorations make sure they don't have sharp edges and that they are properly treated before introducing it to aquarium.

That is all you need to start your aquarium.