blog

I like to blog about current software design and development projects, as well as general everyday news and events. I'm passionate about what I do and you can follow my personal journey through my blog. I'm constantly on the lookout for new development techniques and technologies to keep on top of the changing market, so if I do miss anything feel free to leave me a comment.

CrossCollaborate

February 3rd, 2010

CrossCollaborate is a software solution that I developed in 2009 as a major project which was part of my Thesis, collectively known as CAPSTONE at the University of Technology, Sydney. CrossCollaborate is a network based diagramming tool which allows users to interact in real-time and work on one or multiple diagrams simultaneously. It is an easy to use application which supports single user mode that can be run without the server. The purpose of the application is to allow users to interact in real-time regardless of their physical location and share information.

Some features which have been implemented include cut/copy/paste, undo/redo, drag/drop, freely move and re-size objects on the surface, zoom-in/zoom-out and print/print preview. See the poster for more information.

The solution is entirely written in C# using an Object-Oriented approach. It is Event-Driven and is based on the Model-View-Controller and Client-Server architecture.

TPG bitometer

May 3rd, 2009

TPG bitometer (aka TPG usage meter) is an internet usage meter which allows customers of TPG Internet to check, monitor and keep a history of their quota usage based on data provided by TPG. TPGbitometer can also be used to check the TPG e-mail inbox.

It is available for download, free of charge.

TPG bitometer includes the following features:

  • Compatible with 32bit and 64bit Windows.
  • No installation, single file download, nothing written to the registry.
  • Support for multiple TPG accounts.
  • Display basic information about the plan user signed up to.
  • Display number of days remaining until quota resets.
  • Display remaining peak/off-peak quota as a percentage and in megabytes.
  • Display used peak/off-peak quota as a percentage and in megabytes.
  • Display and keep a history of download usage in days, months and years.
  • Display remaining daily peak/off-peak quota for the current month.
  • Display the current service status reported by TPG.
  • Display remaining days, peak and off-peak usage in the system tray.
  • Ability to check if there is any email in the TPG inbox.
  • Ability to delete emails.
  • Ability to view email messages within the program.
  • Ability to run the program at start-up and delay the usage update.
  • Ability to check for program updates.
  • Change colour of the system tray icon.

TPG bitometer (usage screen) TPG bitometer (notification pop-up) TPG bitometer (about screen)

TPG bitometer (history screen) TPG bitometer (history screen with tooltip) TPG bitometer (table history screen)

TPG bitometer (email screen) TPG bitometer (service status screen) TPG bitometer (settings screen)

Read the rest of this entry »

Removing white border on a ToolStrip

March 8th, 2009

If you have ever used the ToolStrip control and changed its background colour, you will have noticed that it has a white border around it as show in the picture. This problem can be overcome with a simple override.

Create a new file ToolStripOverride.cs and copy the following code.

1
2
3
4
5
6
7
8
9
10
11
using System.Windows.Forms;
 
namespace OverrideControls
{
    public class ToolStripOverride : ToolStripProfessionalRenderer
    {
        public ToolStripOverride() { }
 
        protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) { }
    }
}

Then inside the class where you have your ToolStrip control add the following line to the constructor.

1
myToolStripControl.Renderer = new ToolStripOverride();

C#: PayPal Donate Button

December 14th, 2008

If you have a PayPal account and would like to add a donate button to your application you can use the following code.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void btnDonate_Click(object sender, System.EventArgs e)
{
    string url = "";
 
    string business     = "my@paypalemail.com";  // your paypal email
    string description  = "Donation";            // '%20' represents a space. remember HTML!
    string country      = "AU";                  // AU, US, etc.
    string currency     = "AUD";                 // AUD, USD, etc.
 
    url += "https://www.paypal.com/cgi-bin/webscr" +
        "?cmd=" + "_donations" +
        "&business=" + business +
        "&lc=" + country +
        "&item_name=" + description +
        "&currency_code=" + currency +
        "&bn=" + "PP%2dDonationsBF";
 
    System.Diagnostics.Process.Start(url);
}

Windows Forms with Rounded Corners

December 8th, 2008

Have you ever found yourself developing a custom user interface and needed rounded corners which work on different Windows Operating Systems?

If you are using Windows Vista this is easily achieved by using a rounded PNG image with transparent corners and setting the transparency property. This however does not work on systems such as Windows XP.

The following C# code can be used to ensure you have rounded corners on a number of Windows Operating Systems.

1
2
3
4
5
6
7
8
9
10
11
12
13
[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
private static extern IntPtr CreateRoundRectRgn
(
    int nLeftRect,      // x-coordinate of upper-left corner
    int nTopRect,       // y-coordinate of upper-left corner
    int nRightRect,     // x-coordinate of lower-right corner
    int nBottomRect,    // y-coordinate of lower-right corner
    int nWidthEllipse,  // height of ellipse
    int nHeightEllipse  // width of ellipse
);
 
// Set your own values
Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(1, 1, 10, 10 16, 16));

Visual Studio: How to build only the StartUp project

October 10th, 2008

Have you ever found yourself working on a Visual Studio solution consisting of multiple projects and wanting to build only the start-up project using a shortcut key?

Unfortunately for some bizarre reason Visual Studio 2005 and 2008 do not have this feature by default.  However, there is a simple solution to this. Create a macro and assign it a shortcut key.

First create a new macro module though Tools > Macros with the following code

1
2
3
4
5
6
7
8
9
10
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
 
Public Module BuildStartup
    Sub BuildStartup()
        DTE.Solution.SolutionBuild.BuildProject(DTE.Solution.SolutionBuild.ActiveConfiguration.Name, DTE.Solution.SolutionBuild.StartupProjects(0), False)
    End Sub
End Module

Now that you have the macro, you simply assign it a shortcut key through Tools > Options.  Look for “Keyboard” under “Environment”.  Find your macro in the command list and assign it a shortcut key.

Enjoy.

Gorancic.com v2.0

September 15th, 2008

It has been a long time but my site Gorancic.com has finally had a makeover.

I have added a blog to the site which replaced the outdated guestbook and news section.  This makes it much easier for me to post articles so expect some great stuff.

Gorancic.com v2.0 went live on the 14/09/2008.

Social shaping of technology

September 15th, 2008

The case study article, Thirty Years of Trends in Transit-Oriented Development across America by John Luciano Renne was presented at the Transit Oriented Development – Making it Happen, Fremantle WA (July 2005).  It is based and expands on a national study conducted by the Transit Cooperative Research Program (TCRP); it was released in 2004 and looked at transit oriented development (TOD ) across the United States.  The case study examines the trends of travel behaviour and vehicle ownership from the year 1970 to 2000 in 103 TODs located in twelve regions  across the United States (Renne 2005).  The case outlines the benefits of TODs and how it helps our society by using public transport, walking, cycling and reducing the number of vehicles used.  The aim of this examination is to analyse various theories in understanding technology.  The three main theories are the instrumentalist theory, the determinist theory and the social practice theory (Davison 2004).  Read the rest of this entry »

2008

January 12th, 2008

Hard to believe it’s already the year 2008. I wanted to write some news earlier but haven’t had the time to. :(

I started my internship in August as a software developer/tester with Cognethos and have been flat out with work ever since. At the end of January I will have completed my internship but having proved myself worth keeping I have been offered a position to continue working there. :)

I absolutely love working at Cognethos so I accepted the position. My time wasn’t wasted with trivial tasks. I work on real projects for customers and do my best to keep everyone happy. Right now I’m involved in a project worth millions of dollars. This has to be one of the most interesting projects that I have worked on. A system is being developed which involves a number of organisations and everyone is working on different tasks simultaneously and in the end things are supposed to come together and just work. I found it extremely interesting writing hundreds of lines of code that didn’t even compile because I did not have other parts, which I was waiting for someone else to complete. At the end it just worked. I can’t describe the satisfaction I got when I saw it working. hehe

I go back to university at the end of February, don’t know if that’s a good or bad thing :p

One thing is certain; UTS administration isn’t making it easy for me. I’m trying to swap some subjects but apparently it will take weeks before its processed because they have a large number of these requests to get through. This is all nice and good but doesn’t really help me if the registration closing date is just around the corner. :(

On the social side of things, I have started going out with Vanessa and spending as much time with her as I can. She also goes to UNI and works in IT, which makes things easier for us since we are on the same wave length :)

Being summer in Australia we spend a lot of time at different beaches in and outside of Sydney. It’s refreshing to escape the city, relax and just enjoy yourself :)

I could go on and on about my life and the last 6 months but I should stop here. hehe

I think it’s safe to say that this year will end even faster than last year. :( Now I have to juggle work, uni, soccer, gym and my social life in general.

End of semester

June 12th, 2007

I have been doing UNI work flat out that I haven’t had time to update the site.

The semester is finally over but I still have exams and a major project to complete. Once that is over at the end of the month expect another update from me :)

I need to complete my internship so I have applied for a few places. Fingers crossed I get one of the jobs.

If anyone is wondering how football is going, I can tell you that we are 1st on the table.

On the weekend friends and I went bowling which was fun, it always is. After playing three games we went to the city for dinner. I got myself Chicken Laksa and it was the best Chicken Laksa I ever had :D

I have also made a new Website (CyberTone Systems) which you can find in the portfolio > web section.

Well, this has been a small update brought to you by Beno. Now back to my exam study, wish me luck.