I learned a lot from a project in school when I made something similar to what I described. I collected data from a set of wireless sensor nodes and wrote it to a port on my web host. The data looks like this "1, 2113". The first byte tells me whether the door to the room is open or closed, and the last four bytes tell me the room number. On the web host machine, I set up a simple multi-threaded server socket listener to collect the data, check that it is the right format, and write it to a SQL database. This taught me about Unix sockets and pthreads. I wanted other people to be able to administer my web host, so this taught me about Unix permissions.
Since I was storing information in a SQL database, I had to create the tables in the database and learn how to connect and write to it programmatically. This taught me about SQL. I used the information about whether a door was open or closed to dynamically update a listing on a website that I wrote with Django. Installing Apache with Django taught me some more about Unix permissions and Unix system administration. And of course I learned a lot about web programming with Django. There are lots of other projects that you can take on as well. Another school project that taught me a lot about Unix system programming was a benchmarking project. We benchmarked pretty much every piece of the operating system with C (found the size of the processor caches programmatically, tested raw disk reading and writing speed, file cache size, network transfer speed, thread and process overhead, and etc. ). Basically we replicated the Imbench suite. You can find the project description here: http://cseweb.ucsd.edu/classes/wi09/cse221/project.html/. I pretty much learned about every Unix system call there is from this project. If you use your imagination, you can think of many more. I recommend taking on a project if you want to really learn something to use in the future. At the end, you will have a nice piece of work that you can show to other people. Reading a book is the easy way out, and you are probably just going to forget it all quickly if you don't have a chance to use it. If you already know some stuff and want to become an expert, then books are a good way to go. But you have to use it to truly know it. On Mon, May 3, 2010 at 1:37 AM, Luke Pebody <[email protected]> wrote: > To be honest, I'd go with the book option. But different people have > different learning styles. > > On Mon, May 3, 2010 at 8:23 AM, Jacob Lyles <[email protected]> wrote: >> For the basics, don't learn from a book. Install an apache server >> running a Django site on a fresh Unix install and share administration >> privileges with a friend. Then put a shared git repository on the >> machine that you and your friend can access through ssh. Then use that >> repository for version control on a simple server you write in c or >> python that listens to a socket and then collects any data written to >> that port and writes it to a database. Make your server multi-threaded >> and asynchronous. Then test your server with a script to simulate >> client activity. >> >> >> On Sun, May 2, 2010 at 9:47 PM, viswanath emani >> <[email protected]> wrote: >>> Unix by Sumithaba Das is also a very good book for beginners. >>> >>> Regards, >>> Viswanath. >>> >>> On Mon, May 3, 2010 at 9:24 AM, Amit Agarwal <[email protected]> wrote: >>>> >>>> yeah, navathe is pretty good for Database ans SQL. >>>> For UNIX, you can check "The Design of the Unix Operating System" by >>>> Maurice J. Bach. Its the best book I have ever read on Operating systems >>>> specially Unix. >>>> >>>> >>>> -Regards >>>> Amit Agarwal >>>> Contact: 09765348182 >>>> www.amitagrwal.com >>>> >>>> >>>> >>>> On Mon, May 3, 2010 at 8:56 AM, Bharath Raghavendran >>>> <[email protected]> wrote: >>>>> >>>>> your topic is "off-topic" .. which means if you are off-topic, you are >>>>> on-topic which implies you are not off-topic and based on the topic, you >>>>> are >>>>> off-topic. omg paradox .. *faints* >>>>> >>>>> On 3 May 2010 02:14, Moh Ghooo <[email protected]> wrote: >>>>>> >>>>>> When I studied SQL >>>>>> I was using >>>>>> Fundamentals of Database Systems, by Elmasry and Navathe >>>>>> >>>>>> but i dont know about unix :D >>>>>> >>>>>> Regards >>>>>> Mohamed Sayed Ghoneim >>>>>> 016-86-56-215 >>>>>> >>>>>> >>>>>> ---------- Forwarded message ---------- >>>>>> From: Jaspreet Kaur <[email protected]> >>>>>> Date: Sun, May 2, 2010 at 11:31 PM >>>>>> Subject: [gcj] off topic. >>>>>> To: google-code <[email protected]> >>>>>> >>>>>> >>>>>> Hi all,↲I know this is off topic but can someone please suggest ny >>>>>> good books for learning sql and unix? >>>>>> Thanks. >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "google-codejam" group. >>>>>> To post to this group, send email to [email protected]. >>>>>> To unsubscribe from this group, send email to >>>>>> [email protected]. >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/google-code?hl=en. >>>>>> >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "google-codejam" group. >>>>>> To post to this group, send email to [email protected]. >>>>>> To unsubscribe from this group, send email to >>>>>> [email protected]. >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/google-code?hl=en. >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google Groups >>>>> "google-codejam" group. >>>>> To post to this group, send email to [email protected]. >>>>> To unsubscribe from this group, send email to >>>>> [email protected]. >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/google-code?hl=en. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google Groups >>>> "google-codejam" group. >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]. >>>> For more options, visit this group at >>>> http://groups.google.com/group/google-code?hl=en. >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "google-codejam" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/google-code?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "google-codejam" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/google-code?hl=en. >> >> > > -- > You received this message because you are subscribed to the Google Groups > "google-codejam" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-code?hl=en. > > -- You received this message because you are subscribed to the Google Groups "google-codejam" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-code?hl=en.
