Tuesday, 7 August 2007

The Closed Bidding Period in CORS is NUS's Way to Save Costs

The Centralized Online Registration System, the first barrier that all NUS students have to jump over before any semester starts.

CORS! We meet again!
CORS! We meet again!

It comes with two bidding periods:

  1. The open period where you will be able to view the highest, lowest and the next minimum bid.

  2. The closed period where you will not be able to view any of the above except for the number of bidders. You will be able to view the status of the bids as of before the closing periods in one very long HTML table.

From the official site:

"The purpose of the close bidding is to discourage students from delaying their bids till the last moment, hoping to out-bid competitors"
"The purpose of the close bidding is to discourage students from delaying their bids till the last moment, hoping to out-bid competitors"

So, what is stopping a student from doing these?

  1. Place bids only during the closing period

  2. Place bids only during the last 5 minutes of the closing period to avoid updating the Number of Bidders

Basically, during the closing period, the bidder makes his best bid with the provided information at the end of the opening period. If all bidders follow the above 2 rules, the bidder has to make a maximum bid that he budgeted for the module.

Imagine everyone keeps quiet until the last 5 mins of the closed bidding period and then start submitting their bids.
Imagine everyone keeps quiet until the last 5 minutes of the closed bidding period and then start submitting their bids.

I believe that the actual reason for the closing period is to prevent the system from getting overloaded during the last few minutes of a round. I have heard rumours from the seniors that the system gets very slow during the old times where there were no closing periods.

And why not adopt these methods to fix the overload issue?

  1. Convert the system to PHP - a very efficient and fast programming language as compared to the slow and bulky Java that is being used now. Or some other efficient language. Probable reason: Too much resources needed.

  2. Employ Grid Computing for handling server load, especially during the end times. It *looks* like the CORS system is managed on ONE server. Probable reason: Too much resources needed.

That's the main point - they want to save costs and not invest in more hardware or progamming time. They could have balanced the load between more than one server and even make attempts to optimize the code by switching over to PHP.

Must save cost! Must solve problem!
Must save cost! Must solve problem! (Note: 3 images stolen from other sites)

So instead of doing the above, the CORS committee decided to save costs and switch to this luck-based closed bidding system.

Ebay anyone? Yahoo Auctions? Imagine if they did like what NUS did to save costs, implement a closed bidding period for popular auctions. The 2 same exact above strategies can be used.

Not to say that the CORS system sucks. It does its basic job brilliantly as long as the bidders don't exceed the number of vacancies. But this closing bidding period scheme... well, you get the idea.

Tuesday, 3 July 2007

Top 5 Things Freshmen to NUS Computing Faculty Should Know

(Updated 2/Aug/07) Well, it has been long since an update due to the study break and me trying to make a few bucks.

  1. Freshmen Orientation is 85% games, 15% NUS information

    Freshmen Orientation Project
    The official site of the Freshmen Orientation Project

    See my rant here. Don't attend if you are not into funny games, selling flags or more games!

    See the official site or just see the agenda for the Freshmen Orientation Week for this year.
  2. NUS tendered laptops suck (UPDATE 2/Aug/07: Except for the Fujitsu's - see bottom of post). Yes, including those laptops that will be on sale in Matriculation Fair.

    Dell Laptops
    Dell offers a wide range of laptops, but do not order them online

    For the best bang for the buck, call Dell's corporate line at 1800 3947419 ext 5456 (Dell Corporate - Christina You). Make sure you tell them you are a NUS student and you will get pretty good deals. I got my laptop with more than SG$500 savings.

    If you have noticed, NONE of the laptops in the NUS tender have any gaming cards in them. Not a issue if you don't play games but it is a nice extra to have. You can't even upgrade to them as NUS does not allow it for some unknown reason.

    Dell is a well known brand, normally assigned to value-for-money and a OK design brand. Of course, if you have the $$$, go for the likes of Sony. But with the 3 year on-site warranty that I got from Dell, I have no regrets. And my laptop required servicing once every 4 months for odd problems.

    Also, avoid Windows Vista unless you are able to deal with more problems. If no choice, get the system with Vista. When you finally get a mySOC ID, download Windows XP Service Pack 2 from SOC Internet. It is legal and genuine, as part of Microsoft Academic Program. Hopefully, mySOC still allows it for download and not removed it in place of Vista.

    UPDATE 2/Aug/07
    Now that the new laptop specs are out, Fujitsu deals are not that bad. They even have a model with a dedicated graphic card. Unfortunately, it is a 15" monster so if size is a concern, the Dell XPS M1210 / M1310 still stands out with its dedicated graphics card.

    Also, avoid notebooks that only come with on-campus servicing, especially if you are staying far away from NUS. Go for on-site services where possible for convenience. I had a friend who had to wait more than 1 month for IBM (or Lenovo) to replace a laptop's noisy fan. Lousy on-campus service? You decide.

    And go for 2GB RAM where possible, especially if you do programming using Java - a virtual machine that needs lots of RAM.

    Finally, understand what you really need. Lugging around a 15 inch laptop everyday to NUS is not going to be a pleasant affair. Games like Maple Story do not require a dedicated graphic card. Ask around. Remember, if you buy from an external party, you miss out all the Adobe, Office 2007 and Windows Vista (<gulp>, more problems) freebies. Here's a full article on the NUS laptops to help you more.
  3. Don't take exemption tests such as MA1301 Introductory Mathematics (for poly students)

    MA1301 Information
    No labs, no projects! Who says it's not hard to get MCs?

    Did you know that you do not get any modular credits for passing it? Not even a grade! You will just be certifying yourself that you already have the knowledge of MA1301 so that you can take other modules which have it as a pre-requisite.

    What's in it for me? Because if you take this as a module, you will get 4 modular credits AND a grade that can push your CAP! Not to mention you complete one Breadth (or Unrestricted Elective, whichever you choose). Even more, you will only need to attend the 1 hr tutorials every week and show your grinning face to get the full attendance score. Just make sure you know your stuff.

    Personally, I do not know why CS1231 (Discrete Structures) requires this when every single person I spoke to (that took CS1231) says that it does not use any concepts from MA1301.

    Be sure you know your stuff. This could hit back at you if you are not good in the concepts and even pull down your CAP.

    More info on the MA1301 Proficiency Test. See the MA1301 module information.
  4. Get to know the CORS system

    CORS logo
    Meet MR. CORS. Be prepared to verify your home address numerous times (everytime you login ;)

    Its not really that complicated - some of them make it so. Find an approachable same-sex (so you don't get distracted heh) senior in the first day of the orientation week and pour all your questions.

    The best time is during those times when there's some boring lecture going on - there was one advertising a module about making games so use it to discuss with your senior in a quiet corner so as to not to cause a disturbance.

    My personal advice - take the core CS modules first as you are given "protection" - in the form of freshmen-only places - from us seniors as many of us have much more points that you do.

    Visit the CORS website.
  5. Read this blog!
    Help! F1! Help! F1!
    It won't take long to adjust. Thankfully, there are no tutorials/labs for most modules in the first 2 weeks.

    But seriously, there are some useful links splattered throughout the blog. Here are some links that should help you out (in addition to the ones above):

    1. Timetable Builder - Use this to plan your modules. Consider travel times between faculties, lunch and off-days where possible.
      https://webrb.nus.edu.sg/ctt/builder.aspx

    2. Module Information Site 1
      http://www.cors.nus.edu.sg/CorsSchedule/moduleInfo.html

    3. Module Information Site 2 (in case the previous goes down - it happens, replace XXX with module code)
      https://ivle7.nus.edu.sg/nus/modules/mview.asp?acad_y=2007/2008&mod_c=XXX

    4. Module Information Site 3 (SOC modules only - click on the module code in the 1st column for more info on a module)
      http://www.comp.nus.edu.sg/~online/course_list/

    5. NUS E-Mail - Important NUS circulars, CORS results and NUS spam
      https://exchange.nus.edu.sg

    6. NUS Friendly Mail - Convert your u0706xxx@nus.edu.sg to something like bertsimpson@nus.edu.sg!
      http://www.nus.edu.sg/fea/

    7. Integrated Virtual Learning Environment - For all module related information
      https://ivle.nus.edu.sg

    8. Used Textbooks Forum - Don't skimp on text books
      Offhand I have forgotten the link? If anyone knows it, please post in the comments.
      Update 2/Aug/07 - http://ivle.nus.edu.sg/forum/forum.aspx?ForumID={5ec4b811-0ef4-4095-82d4-171e3d61c97c} (requires IVLE login)

    Well that is all that comes to my mind for now.

Post in the comments if you want to add on for your juniors (if you are a senior reading this)!

Don't forget to start bidding on 30th July 2007! Mark it on your calendar! You can check the bidding schedule here.

Sunday, 8 April 2007

Bittorrent in NUS

Bitty Bitty Bit Torrent in NUS!
The Bittorrent Logo

DISCLAIMER: This post is in my personal opinion and may be RIGHT or WRONG! So do your homework before trying the stuff out!

There have been some queries in the comments (Ok, there's only one, but the referrer logs show many entries).

So, does bit torrent downloading work in the NUS network using a personal laptop?

Short answer

It works partially but not at optimal speed. Use it for legal purposes only.

Long answer:

NUS's routers do not support (or are disabled for security reasons) UPNP (What is it?), so speed is limited by the number of computers you connect to, and not the number of people who connect to you first, as the router does not know how to forward the packet from the other computers to your computer.

The Universal Plug and Play Logo
The Universal Plug and Play Logo

So, the speed you get will not be optimal but the data will download.

Is it illegal?

According to NUS Acceptable Usage Policy, it is not against the policy to use Bittorrent in the network.

However, what you use it to download can overturn that (Section 4.1 in NUS AUP). For example, if you use it to download copyrighted movies, songs, mp3s and other illegal content, then it is illegal.

But if you use it to download open source software like the Linux variants, then it should be OK.

Legal Downloads? Where?

So, what can we download legally?

  • You can download Linux variants to experiment such as Ubuntu
  • There are a host of completely legal torrents at http://www.legaltorrents.com such as movies, games, mp3, etc.
  • This blog post has a list of sites with legal downloads.

Also, go for torrents with a high number of seeds for better speeds.

utorrent
The most popular Bittorrent client

There you go. Download utorrent and start torrentin'.

UPDATE (8/Apr/07): Here is a blog post by someone in NUS who was caught download a copyrighted TV Series Heroes. So be careful!

Sunday, 4 February 2007

The NUS Shuttle Bus Experience

I like the free NUS Shuttle Bus service. Without it, I can't imagine walking for 10-15 minutes to Business faculty from School of Computing. Modern looking shiny orange buses. They are a beautiful sight on the roads.

The hills provide for a unique experience that can be found in few places in Singapore. Sometimes, I wonder how the full bus ever manages to climb up such a slope.

However, the service does come with some *minor* issues. Read on...

NUS Shuttle Bus This image is stolen from other websites as I couldn't find better ones.

The experience below is recounted from a first person view. I was heading to the Central Library.

  1. (Arrival at the crowded SOC Bus Stop at 1330hrs) Plan which bus to take. Look at the map at the bus shelter for more information. Wait for Service A1.
  2. (Bus Service D arrives) Scratch head on this undocumented new bus. Quickly see the map. No information on Service D. See the bus pole and realise there is a "Service D (TERM Time Only)". See list of bus stop locations which make no sense to a freshie. Make mental note to check the map online.
  3. (Bus Service A1 arrives) Now I have two options. To board from the rear or to go by the front. The rear offers a higher chance of securing a seat. The front may leave me behind if the bus gets too full. Wait and see if rear door opens and whether anyone flocks to it.
  4. (Rear Door opens and someone starts alighting) To go or not to go? What if he closes the door?
  5. (Some just-in-time comers rush to the rear door) Green light! Board from the rear! And many people follow along too.
  6. (Find Seat) I find a seat at the centre and the bus starts going. Keep a mental note of where the blue bus stop button is. Keep another mental note on a second bus stop button in case the first doesn't work. And finally, another third note of where a SBS-style-bus-stop button is.
  7. (Before alighting bus stop) Now I need to press the bus stop button. I see 3 buttons on top. Press all. None work. SHIT!
  8. (Rushing for the button) Rush for the 2nd backup button and press. Nothing. Panicking, I press the SBS-style-bus-stop button at the roof of the bus. IT WORKS! I recall one of the 3 buttons worked last time in the other bus...
  9. (Alighting at central library) Bus stops in an odd position - a 30 degrees downwards slope. As I was seated in the centre of the bus near the window, the primary task was to get off while maintaining balance.
  10. (Check Service D Map Position Online) Found it here. No information on bus stop location. Map quality sucks. Resorted to taking the bus myself to explore.

We hope you enjoyed the tour of the NUS Shuttle Bus Experience!

Tuesday, 2 January 2007

Mathematics with Java Doubles

Sun's Java LogoToday, I was trying to revise Java before the term starts. While in the process, I hit a simple addition problem:

System.out.print(124.4 + 18.2); //Outputs 142.6 System.out.print(124.6 + 18.2); //Should output 142.8, right? No... //... // //it outputs 142.7999999999999!

Weird no? After a bit of googling, I found out that this was due to the Java Language Specification, with doubles being converted to strings. (I don't understand the reasoning either)

The solution is to use the BigDecimal class. Wrap each of the double values in a BigDecimal class and invoke the add method in it.

Well, that didn't work properly. In fact, it got worse:

BigDecimal num1 = new BigDecimal(124.6); BigDecimal num2 = new BigDecimal(18.2); System.out.print(num1.add(num2)); //Outputs 142.7999999999999936051153781590983271598815917968

The problem is still there!

Turns out that the solution was very simple:

BigDecimal num1 = new BigDecimal("124.6"); BigDecimal num2 = new BigDecimal("18.2"); System.out.print(num1.add(num2)); //Outputs 142.8 - FINALLY!!

So ladies and gentlemen, remember to use the BigDecimal for your decimal calculations AND to pass the value as a String! Or you will see funny long numbers appearing mysteriously!

It's back to school next week! Looking forward to meeting new faces!