Weechat Tumx

I had an upper hand in this quick assignment! I had registered in Intro to Unix last semester and this one of the very first things Darren taught. I ended up deciding to drop the class simply early in the semester due to an overwhelming course load. Of course I still managed to find a way to mess up while logging into the weechat server this time but that’s just something I do haha. I accidentally deleted my oftc server that was already created for me in attempts to create a new one DOH!

I’m actually surprised Darren did not incorporate this segment into the class as it would probably cut down on the amount of emails he receives, especially from me, and allows the students to work out the kinks of their assignments together. Not only that, but with that addition of a tmux connection, which I love by the way, the weechat channel becomes somewhat of a group message that you can be connected to at all times. I’d have to put the weechat channel tmux as one of the subjects I find most interesting in this class, along with scripting.

I have a question to anyone that reads this and that would be:

What other programs is having a tmux useful for?

I think it is interesting but can’t seem to think of anything, being the new unix user that I am, that I would need to keep running at all times like weechat. I look forward to any responses.

Back From Thanksgiving Break, Time to Work

I hope everyone had a nice Thanksgiving Break! For me, I was the last time I will be returning to Virginia Tech after Thanksgiving being that I am a Senior and if there is one thing i have learned it’s that Virginia drivers are TERRIBLE! I’m from Southern New Jersey and I never look forward to that dreaded 3 hour drive back down I-81. A trip that should take me 6 hours routinely takes me around 8 due to Virginia driver accidents. I mean do you guys even have to take a driver’s test! Now of course, I say this all in fun just to tease you guys but it still is pretty remarkable.

Coming back from Thanksgiving Break is uplifting and torture at the same time. On one hand we only have 2.5 weeks to go after an arduous semester but on the other hand that short period of time has the potential to be the most stressful of the semester. It’s one of the biggest catch-22s in my life. Regardless, it’s time to bang all this work out and get on home for a much needed break and I wish good luck to all students. Please drive carefully so I get home quickly on the 19th :-).

Call 1-800-GAMBLER (If you have a gambling problem)

It’s Final Project Time…ugh. My group has decided to program a BlackJack game. While it may seem simplistic I am very excited about this decision for multiple reasons.

(1) I know I can we can do it – I mean c’mon, I just makes sense to create a project for a 2 credit class that you are confident that you can complete both well and in a decent amount of time. I don’t know about you guys but I have 19 credits this semester, 4 of them being Embedded, and I can’t afford to be stressing out for 2-3 weeks over this final project. This does not mean that we are going to create a crappy project. It just means that I wanted to do something that I am both interested and that I know I can do well.

(2) I’m a bit of a gambler – Never did I have a problem! I just wanted to clear that up real fast haha. I do however enjoy playing BlackJack and I still do. I understand the game, the rules, the ins and outs. This is another reason I was excited our group came up with this idea and it goes back to my first point as to why I am excited about working on this.

(3) I’m not great with GUIs – Our game will be mostly a text-based, feedback styled game. No fancy GUI but just simplistic feedback and options to check your card, check your balance, select a play option, etc.

If anyone has any feedback I think that would be great! I’m widely open to constructive criticism so please don’t hesitate to comment. Good luck to all!

Python Ain’t Too Shabby

I’m not the fastest programmer. It normally takes me a little longer than maybe the average student to pick up on a language before I can begin to effectively program in that language. When I sat down to start programming our Script Work assignment I had set aside a decent chunk of time that I thought I would have to dedicate to briefly learning both the BASH and Python syntax. To my surprise, Python came rather easy. I believe I read in a previous post of another student where they also thought Python was a very programmer friendly language. While I do like Python, I chose not to do the final project in Python due to limitations of what I feel I would be able to implement.

On a side note, I had a mix-up in BASH scripting where my program would work correctly on my remote machine but because I was using declarations that did not work on Darren’s server I had literally 25 errors when I submitted.Thankfully, Darren helped me through this and it was an easy fix. Still, BASH scripting was much more difficult to me than Python and I thought that was surprising.

Redirection Algorithm

I was able to get through the fdtest, cxx makefile, and into the balanced checker assignments before I finally got done the redirection algorithm assignment. Was anyone else stuck on this one also? Anyway once I figured out how to manuveur through the typedef structures and spoke with the professor it became a lot clearer to me so I encourage everyone to look into doing both those things. I also wanted to extend my help to anyone who was still having trouble with this assignment as I know it can get frustrating being stuck on something for so long. Hope everyone is doing well in the class so far!

Time Flies

First off for all CPE majors who are in this class  and have not yet taken ECE 4534, I have some important information for you. DO NOT take Embedded Systems Design with a heavy semester workload. Now to many of you this would seem like common knowledge but there will be a few of you who think this is a possibility. I highly advise against it! I did not plan out my four year class schedule as well as I would have liked and now have a major course load in my last 2 semesters here at Tech. The good news is I am making it work and I am still doing well just with a lot more stress than I would have liked.

This post aims to serve as a mentoring piece of literature for your college future. Through my 4 years here at Virginia Tech ther are certain class scheduling guidelines that I believe every student should know and take advantage of to get the most out of their college experience.

(1) If expenses allow it, take classes in the summer/winter. They are a great way to get ahead and really lighten your workload throughout each semester. Seriously, even if you only take 1 or 2 classes in the summer/winter during your college life it can make all the difference.

(2) Take your area electives online. It is my understanding that no CPE likes having to go to class for 3 hours a week to complete a Society & Human Behavior area elective that they are taking to hopefully boost their GPA. This class time can be spent getting ahead in other ECE related classes or spent just relaxing and enjoying the precious time you have left in college.

(3) Join a one club that really interests you and join one club that will look good on a resume’. Try not to stretch yourself too thin by joining all these clubs that will look great to employers. Find one club you really enjoy and give it your all! Make great friends that have the same interests as you and keep those friends close. More importantly, when things get busy and hectic, don’t give up that club! College is hard but it doesn’t last forever and you will get through it so don’t give up doing something you enjoy.

I’m sure you guys can add other fantastic opinions to this blog post and I encourage you to do so. I know many students who have taken Intro to Unix as freshmen and it would really benefit them to hear about all ways to improve their time here at Virginia Tech!

Goals while at Virginia Tech

While I was lurking around campus the other day thinking a rather messy looking stranger stopped me, and asked me a question. It was a question that everyone has an answer for. The question was what my top three goals were here at Virginia Tech. I thought about it for a few seconds before I spit out the usual cliche response, this didn’t please the stranger so he worriedly moved on. Because of this stranger’s probing question I began to reevaluate my goals, when I realized that my top three goals were really only two goals and their application. Furthermore, those two goals that can summarize the ambition of my entire life in only 7 lines of letters and words. These lines are as follows:

  • 1) Network with people of all types of diversity. More so to change the lives of the people around me, leave my mark, make a difference and create a legacy.
  • 2) Foster a knowledge, grow wisdom, learn tools, and gain experience to be successful.
  • 3) Use the knowledge from goal number 2, to accomplish goal number 1, and make a ton of money doing it.

There Are No Rules! I Mean There’s 17 Rules!

Being a beginner, I am very intrigued by the Unix community. I have been using Linux Ubuntu for about a year now but that was only because my Software Engineering class demanded me use it for programming in Qt. I flirted with making it my primary operating system of choice for quite a while but I still have trouble getting some Windows programs onto my Linux OS. I am a big fan of working through the terminal and receiving instant feedback on whatever it is I am working on at the time. I just switched to Fedora, not for any special reason though, mostly because it was easy to install the disc Darren provided me with into a Virtual Machine. I’m not deep enough into the Unix game to really see a difference in all the types of Linux platforms but I’m sure I’ll get there in due time.

I love the Open Source/Open Platform way of life that has bred Unix. The passage from the online book, “Nor is it that perennial executive’s mirage, some way to magically extract innovative but reliable software on too short a deadline from unmotivated, badly managed, and underpaid programmers” could not be any truer in my eyes. I believe this is a great statement for the same reason I think I am going to prefer Embedded Systems class way more than I enjoyed my Software Engineering class. That is, I prefer to systematically progress through a project than to have 10 different projects going on at the same time with seemingly impossible deadlines to meet. Not only that, Unix is being produced by people who WANT to be working on the project and not NEED to be working on it. When a person has a personal appeal toward a project they tend to care more, try harder, and most importantly, enjoy putting in the time to make a spectacular product.

Another “nugget” that caught my eye were the Unix philosophy rules that are taken into account with the product. Now normally I am not a fan of rules, I think hardly anybody is, hence why one of my favorite commercials is the Little Caesar’s commercial when the guy runs in and starts to take off his shirt while screaming “There’s No Rules!” That cracks me up no matter how many times I see it. On the flip side, the Unix philosophy rules just make sense. As I go down and read each one I find myself nodding in agreement and thinking, “Yes, I can see why that would be a good guideline.” There is a line at the end of the guidelines section stating “Nor is it that perennial executive’s mirage, some way to magically extract innovative but reliable software on too short a deadline from unmotivated, badly managed, and underpaid programmers.”Nor is it that perennial executive’s mirage, some way to magically extract innovative but reliable software on too short a deadline from unmotivated, badly managed, and underpaid programmers. There is a line at the end of the guidelines section stating “Software-engineering texts recommend most of them; but most other operating systems lack the right tools and traditions to turn them into practice, so most programmers can’t apply them with any consistency. They come to accept blunt tools, bad designs, overwork, and bloated code as normal — and then wonder what Unix fans are so annoyed about.” After reading this you understand that they aren’t rules that are applied solely to Unix programmers, it’s just that Unix programmers are doing it right! Personally, I’m going to take these rules into account every time I sit down to program now and hopefully I can put them into practice to make me a better programmer.

You didn’t give me any fish, but so long anyway

It’s been a long semester. Some of it has gone well, other parts not so much. I had high hopes for this class, not really knowing what was supposed to go into a class on UNIX. Some of my expectations were met, there were some good surprises as well, but the class did fell short of my expectations in some places (mainly due to time constraints, 2 hours a week is honestly not enough for a class like this).

So what was missing? Well, if you take a gander at http://www.ece.vt.edu/ugrad/viewcourse.php?number=2524-172, down at the bottom there are some course topics. In the middle are  “System Security” and “System Administration”. I feel like we just skipped those two topics completely. They’re kind of important topics too. While regular expressions and fork/exec are nice to know (and I never would have learned them if not for this class), they can’t really take the place of security and administration. On Windows, you don’t browse the web without a firewall and antivirus installed, do you? No, you don’t, because that’s just silly. So why should we do the same on Linux? There are things like iptables and grsecurity out there for Linux that go a long way for security in Linux. I know we ran out of time at the end, but at least a cursory mention of these things when people are setting up their Linux systems would be nice.

As for administration, it would have been nice to hear something about say, cron jobs and other administrative like tools. As far as I can recall, we just kind of skipped over those or mentioned them only in passing. While not as important as other topics, I still feel like learning about some of these things is important.

But overall, I feel like the course needs more structure. A lot of the topics were self contained and just there (ie going from regex all the way to fork/exec from middle to end). No flow or structure, and I was left wondering what the use of some of these things were, because practical examples (not trivial classroom examples) were non existent.

But it wasn’t all bad. I did learn quite a few things that I wouldn’t have learned anywhere, like regex, using argparse and command line arguments in programs. I did enjoy the class, especially the final project (which was infinitely better than having a final exam). The class was more enjoyable and relaxed than a lot of my other classes, but it can improve.

Last Blog Post

This semester of Intro to Unix has been a long but stimulating one. I did not know what to expect coming in not knowing anything about Unix or Linux, so I was excited. We started off with some background of Linux and Unix but eventually led to more programming type projects.

The only two programming languages that I knew coming into this class were Java and C++. Thankfully one of the languages that we used in this class was C++, so I didn’t have to google all of my code for help. The other two languages that we covered were Python, a language that I had heard of, and Bash, a language that I had no clue existed. Per my usual luck, I always had to program that Bash part of the assignments, so learning some fundamentals in that language was going to be key. In the beginning adjusting to the new syntax of Python and Bash was difficult, but there were some similarities to the other two languages that I knew previously, which made things easier. Also, learning how to extract data from a text file in each language will be extremely helpful going into the future and building my later projects.

Another experience that I was able to have was with my final project in using Qt to design graphics on C++. I had done some GUI work with Java before and never thought it possible on C++ until my partner mentioned Qt. It works much like a GUI and has a lot of the same features that Java has and I will cherish the experience that I had with it while preparing for my future classes.

Overall, I enjoyed this class and am excited to use the information that Darren has taught me in my other classes as I continue with my studies.