Categories
VCE

2010 Study Score Archive: Update Status

Early this morning the Herald Sun published its annual Top Scorers section online. Unlike in previous years where the website simply served a set of static pages corresponding to VCE subjects, this year’s website features an interactive search tool exclusively. It is possible to search by surname and by study name. In general, the new format is far superior to the old static pages and reduces at least somewhat the need for the Study Score Archive. The CSV files used to store the student names and scores are also readily accessible: there is one arranged by surname and one arranged by study name. Access to the data already sorted neatly into a CSV file is good news for me, since it means there is no longer any need to manually copy and paste huge chunks of text from 100 separate web pages.

Updated: school data now available.

However…

Categories
Programming VCE

Scaled Study Score Interpolation in the Study Score Archive

As I previously mentioned, this year’s release of the Study Score Archive will feature estimated scaled scores alongside raw scores. Helpfully, VTAC provides scaling data in the annual Scaling Report, but correspondences between raw scores and scaled scores for each subject are provided only for scores that are greater than 20 and are multiples of 5 (that is, for the raw scores of 20, 25, 30, 35, 40, 45 and 50). As such, it is necessary to somehow estimate the correspondences for the remaining raw scores. This process in general is called interpolation.

A simple method of interpolation is linear interpolation. This is the approach used by Daniel15’s VCE ATAR Calculator, and it is the approach that I will be using in the 2010 release of the Study Score Archive. Other methods might produce more accurate results, but they are harder to implement and without more data it’s not possible to verify which method of interpolation produces the best results.

To illustrate the process, let’s take a look at the scaling of Further Mathematics in 2010 (for scores of 40 and above).

Categories
Keiki Programming

Windows 7-style Notification Area Applications in WPF: Part 4 (Multiple Monitors)

View source on GitHub.

At the end of Part 3 in this series, I noted that the window positioning logic depends on accurately getting the bounds of the monitor where the notify icon is located. Specifically, we require the bounds of the working area (the space on the monitor excluding the taskbar and other docked items). WPF gives us the System.Windows.SystemParameters.WorkArea property, but this gives us the area of the primary display monitor’s working area, and the taskbar (and thus notify icon) might be located on a different monitor. Unfortunately, support for accessing information about anything other than the primary monitor with the SystemParameters class seems to be absent as of .NET 4.0.

We could use the System.Windows.Forms.Screen class to easily solve this problem: the System.Windows.Forms.Screen.GetWorkingArea method has an overload for finding the working area of the monitor that contains a given rectangle, which is exactly what we need to do. However, I am going to opt to use Win32, instead, simply to avoid depending on WinForms (yes, I realise that sounds a bit strange given that this project revolves around a System.Windows.Forms.NotifyIcon). In any case, there is something to be said for knowing what it is that all these .NET functions wrap around 🙂

The two functions we’ll use are MonitorFromRect (to find the handle of the monitor containing the notify icon) and GetMonitorInfo (to get the working area of that monitor).

Categories
Keiki Programming

Windows 7-style Notification Area Applications in WPF: Part 3 (Taskbar Position)

View source on GitHub.

In the previous post in this series, I showed how to find the location of a notify icon by implementing the new Windows 7 Shell32.dll function Shell_NotifyIconGetRect in managed code for use with the System.Windows.Forms.NotifyIcon class.

In this post, I will look at how to accurately position a window above (or adjacent to) a notify icon, no matter the location of the taskbar (barring a certain issue that I note at the end of this post :)). As I noted in Part 2, the current version of Keiki is hardcoded to appear in the bottom right-hand corner of the user’s screen, making it very out of place when the taskbar is moved to the top/right/left of the screen. We’ll need to delve into the Win32 API once again, but as in Part 2 the amount of code required is not daunting, even for a Win32 beginner like me.

Categories
Keiki Programming

Windows 7-style Notification Area Applications in WPF: Part 2 (Notify Icon Position)

View source on GitHub.

You may have noticed that the notification area applications in Windows 7 (Volume/Power/Network/Action Centre) appear centred above their icon. I wanted Keiki to do the same; the current version is hardcoded to sit in the bottom right of the screen, which causes a few problems:

  1. The taskbar position is not taken into account; the window will be in the bottom right even if the taskbar is at the top of the screen.
  2. The window appears on top of the new Windows 7 fly-out interface for hiding notify icons if the Keiki icon is kept there.

In this post, I will demonstrate how to retrieve the location of a System.Windows.Forms.NotifyIcon with a function new to shell32.dll in Windows 7: Shell_NotifyIconGetRect. Windows Vista unfortunately lacks this function: I will cover the approach I use in Vista in a later post.

Thanks to Frédéric Hamidi for pointing me in the right direction.

Categories
VCE

VCE Study Score Archive: Improvements for 2010

The number of years since I finished VCE continues to increase, but I still plan to publish my Study Score Archive once results are released in the near future.

There will be one major additional feature this year: scaling of scores. Newspapers only publish raw scores, which can be misleading: a raw score of 40 in Latin contributes much more to one’s ATAR than a raw score of 40 in Business Management does. This year I will be incorporating data from the Scaling Report published by VTAC to generate a separate set of lists made with scaled scores.

As always, this sort of data should be interpreted cautiously. Consider:

  1. Calculated scaled scores are estimates only.
  2. A raw score of 39 in Latin scales to somewhere between 50 and 52, but it will be missing from the data. Meanwhile, a score of 40 in Business Management (which scales to around 37) will be present.

Lists using scaled scores will be included in addition to the standard raw score lists, not in place of.

I don’t have access to the scaling reports for all the years included in the archive. Lists using scaled scores will only be present for 2006 onwards (unless someone can send me the reports for earlier years).

Categories
Keiki Programming

Windows 7-style Notification Area Applications in WPF: Part 1 (Removing Resize)

View source on GitHub.

Keiki, my OptusNet Usage Meter, is designed to sit in the notification area (or system tray, if you prefer) and behave similarly to the default system ‘applets’ (Volume/Network/Action Centre/Power). That is, the application becomes visible with a single left click on the notify (tray) icon, and is hidden again when focus is lost.Notification Area

I have recently started to refactor Keiki’s code, as I have learnt a lot about WPF since I first wrote the application. While refactoring I’ve also tried to polish a few rough edges: one of these is the main window’s resize behaviour. The Windows 7 (and Vista before it) tray applications (excuse the ever-changing terminology) have no title bar and are not resizable. It turns out that this window style isn’t trivial to implement with WPF.

Updated: improved code to focus application when border is clicked.