This is an idea that I have just came up with yesterday. I was in the PC commons waiting for my friend to print some stuff, when I helped myself to a vacant PC there and found a(nother) thumb drive being left behind, still stuck into the machine. Any other day, I would have just ignored it as it actually commonly happens, but for some reason, on that day, I thought of an idea for a small Android app for lost and found!
The basic idea is that if we found something, we can take a picture of it and post it into the stream, where people who lost something can try their luck and find their lost stuff there. People can send a request to the founder to claim the stuff, and the founder should ask a question pertaining to the item to verify if the requester is really the owner of the item found.
I know this leaves so many loopholes (people can claim things that are not rightfully theirs) but what I need to do now is not a flawless app; just an idea of an app that I can work out. I do not know if this idea going to remain as what it is; an idea, but I have a plan. Now that I am already back in NUS, I just realized that I actually have the best platform to work on my ideas and getting help at the same time; Friday Hacks of NUS Hackers! We shall see if this project (as well as the previous one) can be done within this semester, with the help of Friday Hacks, or even a Hackathon, if my friends are up for it hahaha.
A blog about my journey in NUS School of Computing, my personal projects, and all things related to computing! =D
Monday, August 18, 2014
Thursday, May 15, 2014
Idea 1: Transjakarta Route Planner
Sorry for spoiling the mood of readers that are expecting a lesson on programming (if there are any readers at all here), but this post is not going to be that. This will be just an idea that I just came up with, and I think I should take note of it somewhere that the future me will see in the future. So here goes.
As you may have known, I am an Indonesian, and I came from Jakarta. I usually go back to Jakarta every long holiday (those that last for a month or more) and do not spend my time travelling much. This summer, however, I decided to take up a challenge by interning in a university (Universitas Siswa Bangsa Internasional or USBI, if you are an Indonesian and want to know the name). It is really far from my house and my mother does not really allow me to find a place to stay somewhere nearby ("nge-kos", for the Indonesians out there). Of course, I can drive there, but the problem is, I've got no spare car to use as both my parents are using them everyday. (If you think I am rich or something just because my family owned 2 cars, it is actually quite common for the middle class in Indonesia to have 2 cars, but of course not luxury cars. For the record, my cars are a faithful Toyota "Kijang" (since ~2001!) and a Daihatsu Xenia (since ~2006). As you can see, both are not exactly expensive cars, and they are already quite old.) Thus, I need to find out a way to get there by public transport. Since it is impossible to find out the service route for most public transport in Jakarta (believe me, it is impossible), I tried to just use the best one, Transjakarta.
Transjakarta is basically like a normal bus, but with a better and more organized (though still extremely messy) service route. It is supposedly a solution the Jakarta government came up with to mitigate traffic congestion (though all it does is actually to worsen it). Nevertheless, I find that the website is not really informative (see it for yourself). The first thing I would need, of course, a feature that can tell me how to get to one stop to another. It is not available anywhere in the website, as far as I look. (If there actually is such a feature, please tell me!). Second, I want to check what stop is close to a certain place. Such an information is also not available! Even Google Maps let me down! (On their defense, Jakarta's public transport is indeed so chaotic that it is impossible to compile an accurate data to represent all the possible way to use public transport to get around Jakarta).
This idea of mine would be to solve the first problem. I wonder why hasn't it been implemented by anyone at all, since the idea behind it is quite simple. It is basically a graph's shortest path problem. Of course, I am oversimplifying things by ignoring distance between stops, travelling time, traffic, etc etc but hey, it's a start, right?
Initially, the program can assume that the distance to adjacent station is the same, so to calculate the shortest path, it will simply be the least number of hops (so we can use BFS). If successful, I will try to extend it to include a weight in the graph, which will be the travelling time/distance (I don't know which one would be better, any idea, readers?) Then if I've got the time (and knowledge), it can be merged with traffic information so that the accuracy of the travelling time will be better.
Just an idea. I think I can make the most basic version soon, but not sure about the most advanced one haha. Anyway, if you happen to be an Indonesian, and a programmer at that, and want to implement this too, feel free to do so! No obligation to credit me or something; I am sure I'm not the only one annoyed by this. =D
Edit: Found an app in the Play Store that has that functionality: finding a way to go to one stop to another for TransJakarta.Kommuta Komutta is the name. You can try finding it in the Play Store too. They decided to go for the pre-processed method, so any query by the user will be responded instantaneously, which I think is really good. I just thought their UI can be improved; such as by giving a map with pins on stops instead of a auto-complete text field, or perhaps even better, a combination of both.
Edit2: Komutta not Kommuta! Sorry!
Edit3: Here's the dev's webpage if you are interested to learn more about them. Apparently they are a mobile-based start up company in Indonesia. May want to work with them regarding the first project, but I think I am still too noob for them.
Edit: Found an app in the Play Store that has that functionality: finding a way to go to one stop to another for TransJakarta.
Edit2: Komutta not Kommuta! Sorry!
Edit3: Here's the dev's webpage if you are interested to learn more about them. Apparently they are a mobile-based start up company in Indonesia. May want to work with them regarding the first project, but I think I am still too noob for them.
Wednesday, April 2, 2014
Overview For You, Review For Me
Hi readers! This post is going to be a placeholder for an overview of what I am going to cover in this blog (hopefully). Actually the reason I am doing this is because I will be having a test this Friday, and I need to do a review of what I have already learnt so far. Thus, the title.
Algorithms covered:
- Binary Search
- Sorting (Bubble, Insertion, Selection, Merge, Quick, Counting, Radix, Topo)
- Binary Search Tree (Trees)
- Bellman-Ford Algo (Graphs)
- Dijkstra's Algo (Graphs)
- BFS and DFS (Graphs)
- Bloom Filters (Hash table)
Data structures:
- LinkedList
- Trees, especially AVL Tree
- Graphs, both directed and undirected but no multi-graph
- Heap, especially Binary Heap
- Heaps Union Find
- Hash tables - Chaining vs Open Addressing
These are not everything I have learnt, but I omitted some that is quite obvious (like ArrayList, or even a plain Array) or things that is not covered in great detail in class (Red-Black trees or something, Fibonacci Heap, etc)
Sorry I have much lesser time that I thought I would have. Hopefully I can fill this blog during the summer (though I doubt so because I have already some plans in mind for summer, though those are not confirmed yet).
Algorithms covered:
- Binary Search
- Sorting (Bubble, Insertion, Selection, Merge, Quick, Counting, Radix, Topo)
- Binary Search Tree (Trees)
- Bellman-Ford Algo (Graphs)
- Dijkstra's Algo (Graphs)
- BFS and DFS (Graphs)
- Bloom Filters (Hash table)
Data structures:
- LinkedList
- Trees, especially AVL Tree
- Graphs, both directed and undirected but no multi-graph
- Heap, especially Binary Heap
- Heaps Union Find
- Hash tables - Chaining vs Open Addressing
These are not everything I have learnt, but I omitted some that is quite obvious (like ArrayList, or even a plain Array) or things that is not covered in great detail in class (Red-Black trees or something, Fibonacci Heap, etc)
Sorry I have much lesser time that I thought I would have. Hopefully I can fill this blog during the summer (though I doubt so because I have already some plans in mind for summer, though those are not confirmed yet).
Saturday, March 29, 2014
Intro
Welcome to this blog! My name is Diga. I am an Indonesian who is currently studying Computer Science in NUS (National University of Singapore). I am creating this blog to store the things that I have been learning in the University, as well as personal projects that I have made. Unfortunately, I do not have any personal project yet (sad) so this blog will only contain the things that I learned, for now.
I created this blog because I feel that there are a lot of things that I need to learn to be a good Computer Scientist, and I believe that storing everything in my head is not really the best idea. So, I decided to store it in the form of the blog. Most of you may have heard about the study that recapitulating whatever you have learnt will actually give you better retention rate. So, by writing what I have learnt in this blog, not only I am able to remember things better, but also, I would have an all-in-one reference for things that I have already known, but I might forget in the future. Not only that, you, readers, could also benefit from it!
For your information, I am currently still in my freshman year (going sophomore after the summer) so some of the things may not be entirely accurate, so feel free to correct me whenever you see something is amiss in my explanation.
For readers who happen to stumble upon this blog, read the content, and become interested in learning programming, but find that some of my explanation are unclear, also feel free to ask in the comments section!
However, because of the crazy workload of a top, Asian university such as NUS, I do not have the time to post everything I have learned promptly. (To illustrate, I have already had this idea since a month ago and only now I have the time to actually start) So, please be patient until I have enough things in this blog, if you want to learn programming from scratch.
That is all for now. Note that this introductory post will be updated from time to time, but may not be as frequent as you would like.
I created this blog because I feel that there are a lot of things that I need to learn to be a good Computer Scientist, and I believe that storing everything in my head is not really the best idea. So, I decided to store it in the form of the blog. Most of you may have heard about the study that recapitulating whatever you have learnt will actually give you better retention rate. So, by writing what I have learnt in this blog, not only I am able to remember things better, but also, I would have an all-in-one reference for things that I have already known, but I might forget in the future. Not only that, you, readers, could also benefit from it!
For your information, I am currently still in my freshman year (going sophomore after the summer) so some of the things may not be entirely accurate, so feel free to correct me whenever you see something is amiss in my explanation.
For readers who happen to stumble upon this blog, read the content, and become interested in learning programming, but find that some of my explanation are unclear, also feel free to ask in the comments section!
However, because of the crazy workload of a top, Asian university such as NUS, I do not have the time to post everything I have learned promptly. (To illustrate, I have already had this idea since a month ago and only now I have the time to actually start) So, please be patient until I have enough things in this blog, if you want to learn programming from scratch.
That is all for now. Note that this introductory post will be updated from time to time, but may not be as frequent as you would like.
Subscribe to:
Posts (Atom)