Cheet Sheet Page 1Aunt BeverlyGrandma, Mom & BabyFeeding TimeMicky!Me!Mom Eating LunchWassssssup??!!!!Aunt Heidi

Archive for the ‘Education’ Category

What’s going on, a blog return.

Tuesday, September 9th, 2008

I hope to be back on my blog now. My goal is to update once a week or more. There’s plenty of things going on in my life now for me to write about here.

Education

News

I talked about studying for the CCIE at one point. That’s fallen to the wayside in favor of a graduate degree. However, I think my approach to the CCIE might have been wrong (I was following the Odom book). Odom starts with the physical layer and works his way up… a class I’m taking this semester (”Computer Networks”)’s textbook starts with the application layer and works its way downward (skipping Presentation & Session layers, of course ;)). This does seem like a more natural progression, though one could certainly spend enough time on the network layer to never reach Data Link and Physical layers. This class should be interesting, as it takes a more internal view of how things work (not per-Cisco, but looking at the RIB, FIB, queuing, etc).

My overall educational goal is currently in the Ph.D.  direction. I’m currently working on my M.S., which at my part-time pace should be completed in 2010. After I’ve completed it, I am planning on continuing onward toward the doctorate. My ability and drive should enable me to reach that point. I work very hard in my classes now and have no desire to stop.

This semester will be tough because of the topic. I know networking very well and it can be hard to filter out what I already know to reach what I don’t… I don’t think it will be a problem, but it may be boring at times!

Philosophy

I’ve been working on better organization, better use of time, and more creativity in my approach to education and work. My big take-aways for this week are: (from a Disney workbook on Imagineering) buy the best tools (notebooks, paper, pens, etc) you can afford and treat them like they’re the cheapest. I’ve got the first part down… I love moleskine notebooks and my parker pen! I don’t like to use them, though!! I try too hard to save the notebooks for”good” writing when the “good” writing turns out to be worse than the scribbles and drawings I put down elsewhere. This is something I’m stopping! My notes aren’t particularly interesting in any case (they’re technical about projects, project ideas, school ideas, thesis ideas, etc) and tend to be made of scratchy block diagrams… but these block diagrams are above and beyond the long notes I write otherwise.

The other one for this week is to focus on a question. In education (and work, often) a topic sentence is often garbage. There’s nothing more meaningless than most (technical) paper titles! Instead, I want to focus on a topic question. A question requires a direction. A sentence does not. I realize that some questions can be vacuous (I often hear others asking them in class ;)). I therefore have these three rules (with perhaps more to come):

  1. No Rhetoric.
  2. Must be open-ended.
  3. Must be answerable, but need not have an answer.

The latter rule may seem contradictory, but it’s not. A question can be non-rhetorical yet still be unanswerable in context. Once the Topic Question has been asked, brainstorming can begin…

I haven’t nailed down exactly how I want to brainstorm and organize my educational questions, but I’m working on a GTD / 43-Folders (+ A to Z archives) organizational scheme. It’s not optimal yet (especially as far as projects go), but I’m working toward it.

Fitness

After a hiatus for a few months this summer (no gains, no losses), I’m mostly back on track for diet & fitness. I need to re-overhaul my diet again (incorporate more vegetables, whole grains & avoid more poisons like HFCS). I am, however, making some excellent strides in my exercise regimen. I could use more cross training and resistance training, but I’m doing very well on cardio and stretching!

I have a goal to run the Barrington, RI “Trot Off Your Turkey” 5k race in November. It sounds like an extremely laid back 5k race, so a perfect first foray into road races. Keep in mind that I’ve hated to run in the past (I was a High School swimmer, never a runner). Currently I’m on week 5 of the Couch to 5k (C25K) program, which is a major milestone of the 9 week program. Tomorrow will be my 2nd day (each week has 3 running days) which has 8 minute runs with a 5 minute walk between. Saturday is my first major run at 20 minutes continuously. Every run begins and concludes with a 5 minute walking warm-up/down.

My “secret” goal (not so secret) is to run the 2009 Cape Cod Marathon to completion. I have no goals of great times or even to run continuously… As they discuss in The Non-Runner’s Marathon Trainer, the goal is simply to finish. I would like to finish before the course closes, however… Training for this task begins after the November 5k (or perhaps as soon as my C25K program is complete, since that should occur first).

A Busy Conclusion

Yes, I’m keeping my time filled! If this isn’t enough, I’m sure I’ll come up with more! I haven’t even talked about work projects and how I’m double booked on projects through the end of FY’10 (I am working on two projects half time, but one often gets pushed to the side… which means I have “extra” work to do on my own time or on overtime). How can I manage everything? I don’t know if I really can, but I’m hoping marathon training will help!! I’ve heard that this sort of effort (not to mention the extra energy from being in shape) can really help you keep the rest of your life straight. Only one way to find out……..

First attempts at MATLAB GUI with embedded UDP objects

Sunday, May 18th, 2008

This is what I did to connect a MATLAB GUI to a UDP object (using the Instrument Control Toolbox). This example is a bit over-simple (one instance of MATLAB - nothing remote), but the concept could certainly be modified for a real application (in fact, I need to for a work project…). Please bear with me - I’ve never used event based programming in MATLAB before. If I’ve done something wrong (and I’m sure I have), please let me know!

First the basics: A GUIDE GUI:

Two pushbuttons, an edit box, a static text we don’t care about (title text), and one we do… configuring these further:

I set tags for the important items. The pushbuttons are named ’send’ and ‘close’ respectively, the text box is called ’sendbox’ and the static text is called ‘rcv’. More importantly:

The HandleVisibility for the GUI itself must be set to on (and less importantly, the name can be set here as well).

With this prep, the real work is ready to begin. In the gui_n_udp_OpeningFcn, set-up the UDP objects:

% Choose default command line output for gui_n_udp  

handles.output = hObject; % (GUIDE Configured)  

    

% Create UDP objects  

handles.rcv_udp = udp;  

handles.send_udp = udp;  

   

   

% Set-up UDP Receiver  

handles.rcv_udp.remotehost = 'localhost'; % Normally an IP Address  

handles.rcv_udp.remoteport = 10001;  

handles.rcv_udp.LocalPortMode = 'manual'; % Required  

handles.rcv_udp.LocalPort = 3457;  

handles.rcv_udp.LocalHost = 'localhost'; % Unnecessary?  

handles.rcv_udp.Tag = 'rcv_udp'; % This can make things easier...  

    

% Set-up UDP Sender (you should be able to see how this could be applied to  

% two separate MATLAB computers)  

handles.send_udp.remotehost = 'localhost'; % Normally an IP Address  

handles.send_udp.remoteport = 3457;  

handles.send_udp.LocalPortMode = 'manual'; % Required  

handles.send_udp.LocalPort = 10001;  

handles.send_udp.LocalHost = 'localhost'; % Unnecessary?  

handles.send_udp.Tag = 'send_udp';  

    

% Set-up callback for a UDP event (Receiver only)  

% There must be a better way to do this?  

handles.rcv_udp.DatagramReceivedFcn = 'UDP_GUI(''display_udp'')';  

    

% Prep the UDP objects!  

fopen(handles.rcv_udp);  

fopen(handles.send_udp);  

   

   

% Update handles structure  

guidata(hObject, handles); % (GUIDE Configured, but necessary of course)  

As the comments describe, I’m setting up two UDP objects that are linked together. It’s pretty boring (everything happens on the local machine), but the concepts are the same if IPs are used. I’m putting these directly into the GUI handles. The hardest part to piece through is that a GUI is a figure which can contain nearly unlimited additional variables and structs within it. Some of these objects are graphical while others, like the UDP objects I create, are just hanging out as children of the GUI figure… more about that later on.

You’ll also notice that I edit the handles.rcv_udp.DatagramReceivedFcn callback function. When a UDP Datagram is received, the event is triggered and the command in that variable is executed. I’m not really sure how to use function calls (e.g. “@display_udp”) so I used an explicit call to the GUI function. There may be a better way (as I indicated…). I won’t be jumping to this function yet…

Next up is the send_Callback. This is the function that is called when the Send button is pressed and its contents are pretty simple: 

fwrite(handles.send_udp,get(handles.sendbox,‘String’));

All this does is send a string (retrieved from the ’sendbox’ text box) to the send_udp object. Hooray, we’re internet ready…

Now on to the display_udp function: 

function display_udp() 

% Takes a UDP event from rcv_udp and sets it to the rcv 

gui_handle = findobj('Tag','gui_n_udp');handles = guidata(gui_handle); 

data = fscanf(handles.rcv_udp,'%c');set(handles.rcv,'String',data);guidata(gui_handle,handles); 

 

This function was tougher - and probably somewhere things could have been done more easily. I first need to find the GUI handle. This handle is the ID (an actual floating point number) that lets me access the contents of the GUI. This is the point where, if HandleVisibility is turned off (or “Callback”), you won’t be able to search out the GUI’s Handle ID.

The “guidata” function retrieves the GUI Handles (plural - this is the GUI object that holds all the other goodies). Once this object has been retrieved, it’s easy to scan the data from the rcv_udp object, write the data to the “rcv” static text, and save everything using the guidata function again (an important step).

Finally, we have the close_Callback function (activated when the CLOSE button is pressed):

fclose(handles.rcv_udp); 

fclose(handles.send_udp); 

delete(handles.gun_n_udp); 

There’s not much exciting here… if you don’t close out the UDP objects, the ports will be seized until MATLAB is restarted. Deleting the figure object closes the GUI.

Go Go Go!!

Friday, February 8th, 2008

This is one of those “all inclusive” posts. I just wanted to give a status update on everything (for the few that might pass by).

In school, I’m doing fine. I’m in an oceanography class which is very interesting but not yet totally relevant to my thesis, which will be on undersea acoustic networks. This has left me with limited time, but class this semester isn’t nearly as time consuming as my Ocean Engineering class last semester! This means that when I should be researching I have “procrastination time” that can be used to play Go!

I’ve played a lot of online Go so far this semester (and it’s only February)! So far I’ve played 16 games in 3 weeks! The first half (or so) of these were versus KGS Bots in order to get a real rank, but after becoming solid, I’ve reached 1-kyu and will hopefully creep upward from there. I’m not really sure where I should be, but my games tend to be pretty close around the 1-2 kyu levels… I’ve so far crushed most opponents weaker than this (let’s hope that continues ;).

I do need to concentrate a bit more when I play online. This was always a problem for me in the past and it certainly continues today. The game I lost today (vs. 1-kyu) was a disaster because  I got cocky (usually an online only syndrome), and I nearly lost another but for a lucky break: my opponent (2-kyu) allowed me to connect my dead group (I really should have connected when it was threatened).

All-in-all, the completion of my fifth year of Go (I’m at about 4.5 years) could be the one that sees me become a solid KGS dan player. I’ll be marking July 3rd on my calendar!

The Beginning

Monday, November 12th, 2007

I did make it into the Graduate program I mentioned before. It’s a joint program with NUWC and URI through the Center of Excellence in Undersea Technology (COEUT). So far the first class is going great! That being said, we’ve had about 8 weeks of class (once a week for ~3 hours) and two homeworks; our first quiz is this week. It’s Ocean Engineering 550 (and ELE 550) and it’s a survey course of Ocean Engineering.

The format is interesting and the subject is very broad, covering basics of Linear Algebra (primarily solving of systems of equations), navigation and geodesy, signals (primarily regarding the Fourier transform and frequency domain), and communications (modulation, etc). I’m very glad that the first class was formatted as a survey with a lot of review from undergrad - my biggest worry was that 7 years out of college would have resulted in too much apathy. It’s apparent that I have a good deal of work ahead of me, but I think I’m doing well so far (though I’m still waiting on the first set of grades).

Study Time!

Friday, June 15th, 2007

I’ve really broken into the books I’ve gotten to prepare for Grad school. I haven’t even been admitted yet, though I think I have a fairly good chance to get in the NUWC/URI COEUT Distributed Networking Systems program. I’m nearly finished a whitepaper titled “Resource Direction Protocol for use in Static Distributed Undersea Networks,” which hopefully falls in line with this program (it certainly fits into our research group’s ideas at work).

I will be attending an informational meeting and introduction session this upcoming Tuesday, so I’ll be finding out more about the program and how to apply. I’m more worried about passing it through budgeting at work - I know nothing about that process! I may also need to find two letters of reference, though that should be easy enough to do at work.

The books I’ve been working through on my own are: Forgotten Calculus by Barbara Lee, Probability, Random Variables and Stochastic Processes (3rd ed.) by Athanasios Papoulis, and Differential Equations and Their Applications (4th ed.) by Martin Braun.

The Braun book I just purchased used from Amazon and it seems to be very good! I barely got it and have already worked through the first few sections. It’s interesting to relearn Differential Equations. I’m understanding them better than I ever did in college (I had a terrible Math prof). The Probability book is very hard - nobody seems to like it on Amazon, but I did pick up a study guide too… so hopefully it will be enough to understand most of it without too much effort. Forgotten Calculus is a bit too easy, but necessary because I don’t remember any of the integral / derivative tables. I think the reasoning behind it is most important, though… and I thankfully didn’t lose that.

I’m fairly surprised at how quickly I’m relearning the math, especially the stuff I didn’t understand well the first time around. I’m attributing it to my significantly improved study habits (thank you Game of Go)! The absolute hardest part about learning math on your own is that the books are written by Math PhD’s. I think it does help you learn it better, but it’s sometimes tough to see how they get from equation X to equation Y. I was pleased when it finally dawned on me that the 1st order differential method is based on the Product Rule! Once I realized it, it seemed obvious… but the author only needed to say “by the product rule” instead of assuming it was second nature. Still, combine figuring that out with solving the odd numbered problems (solutions in the back) and you come out of it with math strength.

Look for more info sometime next week! I’m really looking forward to the URI meeting and getting started on the application!!!

Family Life

With the whitepaper I’m writing (mostly on my own time) and the studying, my family is a bit more neglected. Finally finishing the paper will alleviate that somewhat, but I have to acknowledge them in some way! I do try to do this work after J has gone to sleep, but sometimes I need a bit more time than that. I have to assume that it’ll be this way for the next few years or more… hopefully it isn’t too much of a problem! It will be interesting to have a 2nd kid during school (we certainly will sometime in the next 3 years), but it shouldn’t be a problem. At worst I’ll miss a class because  of it… and be more tired from lack of sleep.

In any case, it’s the other reason I’m studying hard this summer. It will make actual classes that much easier for my family to handle.

Starting a new Goal?

Saturday, June 2nd, 2007

I may be putting my efforts toward the CCIE on the back-burner. I’d really like to get the most prestidgious technical certification out there, but something else has come up. I think I may be falling into a more important and advantageous opportunity!

A new Masters program in Electrical Engineering, Computer Science, Ocean Engineering, or Mechanical Engineering is starting between URI & NUWC concentrating in Distributed Networking. I would choose either the Electrical or Computer Science track. This would require me to meet all the normal requirements for the program only substituting a few core classes/electives for the concentration. The problem is that I don’t know a differential equation from a doughy eclaire… it’s just been too long! I’ll also have problem with signal math if I end up taking DSPs.

So I ordered “Advanced Differential Equations for Dummies” and I’m breaking out my old signals book (by Leland B. Jackson, God of Signals and Transforms). I’ll also probably have to re-learn some trig and probability (always hated probability).

My other option is to learn basic computer programming from the { to the }. Yes I already know some, but my style is nil (since I only ever learned Pascal formally - and that was over 10 years ago). I just don’t know it well enough to get by. Relearning sounds easier than initially learning!

Well… it sounds like a fun summer so far! I wonder what else is in store…

The worst part…

Friday, May 11th, 2007

I’ll apologize in advance for the rant.

The worst part of studying for the CCIE (and ESPECIALLY the CCIE R&S) is that the beginning of the course is a major review. It may be that I’ve done too much IRL or that I just got out of my CCNP bootcamp… but it’s hard to wade through the tall grass of the chapters and find the valuable new material hiding in it. The worst part is the tall grass.

I already know how VTP works (it’s pretty simple) or how Trunking works (I’ve used it a good deal between routers and switches). After the CCNP (and CCNA!) it’s pretty old hat… There are some new things (the actual frames used in ISL and 802.1q), but it’s primarily rehashed stuff. For completeness however, everything I think I should know for all time is being studied (and supermemofied). This makes for LOTS of flash cards and very slow going.

That’s the end of the rant. To make up for it, an anti-rant… Even though I’ve had a lot of exposure to the basic elements of R&S, it’s of utmost importance that I solidify these fundamentals. Kageyama speaks to the importance of fundamentals in Go; the same is true for internetworking.

It’s actually fairly amazing that I’ve already been able to use some of these fundamentals! It’s good to know things off the top of your head (with just a bit of time for recall). I’ve had someone ask me to get back to him with info on a basic ethernet frame, and I was able to draw it out for him directly. Talk about a good way to impress people! I feel obliged to issue one warning: This does not work for picking up women!! At least not unless she’s also a network engineer. As proof, I’ll make this attempt on my wife tonight… maybe 802.3 with SNAP will be enough.

CCIE Progress

Monday, May 7th, 2007

The last week was pretty busy for me: 2 weekends ago was a Birthday party that I was in charge of AND we painted our bedroom. This past weekend was sort of a variety expo. We bought a new lawn mower (it’s Craftsman, RWD, Key Start… pretty nice), slept a good deal (needed), and moved my brother out of college. During the week it just felt busy - I guess I have to admit that I slacked a bit :)

Progress was slow, but I’m back on track again! I’m starting something new… Supermemo was mentioned before: it has a statistics output that I can use to track progress, so I’m going to be adding that to this blog every few days. (Baselined on Monday, how about)?

Supermemo Statistics

Name Stat
Total Elements 392
Total Items 298
Memorized Topics 27 (of 94)
Memorized Items 298 (of 298)
Retention 97.37%
Memorized per Day 10.6429 it/day
Ave # Items & Topics per Day 12.526 & 3.02

Chapter I complete, Chapter II…

Monday, April 23rd, 2007

I’ve completed Chapter 1 in CCIE Routing and Switching: Official Exam Certification Guide 2nd Ed. - given a few more weeks of repetition I should even have all the tables solidly memorized! I’d expect more of the CCIE, but Cisco does love to have useless fact-memorizing questions on their tests! Knowing that Gigabit Ethernet over Copper is IEEE 802.3ab or that UTP max cable length is 100m could possibly be useful (for the test). Well… unlikely, but it is setting up some good study habits from day 1 I suppose :) I just wish the book talked more about modern framing (it’s nice to know about DIX Ethernet and SNAP headers, but …) - it’s something I need to look up and add to my slides. (Mustn’t be afraid to search for more information)!

Chapter 2 is where the real fun starts. VTP isn’t far away, and the basics of switching is real. (More real than SNAP). Chapters 3 (Spanning Tree Protocol) and beyond should actually be fun! Chapter 4-6 may be a bear (IP, Transport Layer, and more) as there’ll likely be many more headers to memorize but it’s all part of the game!

<h2>CCIE as a Shodan (Black-belt) Cert</h2>

Anyone who’s reading this may know I play Go (a 3000+ year old Chinese board game). The game has a long history in China, Japan, and Korea and is said to be one of the four aspects of a cultured person (ref?). Go uses a ranking scheme similar to that used in martial arts. These ranks run from 30-kyu (beginner) to 1-kyu and 1-dan to 9-dan. Shodan (1-dan) is the marking point for black-belt in Japanese martial arts (a system begun in 1800s Japan).

Based on the level of effort and dedication required, the CCIE seems like a true Shodan Certification. This should not relate to Six Sigma, which also uses these terms (Black Belt, etc) but bears no actual resemblance to Martial rankings.

Certification … it does involve a certificate!

Saturday, April 21st, 2007

I passed the CCNP a couple of weeks ago. That’s old news… but in the mail today came the certificate and a nice surprise! The CCNA card was a laminated card the size of a business card. Perhaps the entire system has changed (my CCNA was in 2005), but my CCNP card is of much higher quality! It’s a plastic card - solid like a credit card or student/work ID (at most big schools / companies).

I also got the printed certificate, of course! It’s a very nice confirmation and more than suitable for the office :) This didn’t stop me from looking up the plaque you get for reaching CCIE… It’s quite nice - the only picture I could find was on Scott’s, CCIE# 14618, blog.

So what have I done today?

Not a lot! At least not much as far as CCIE is concerned. I planted some perennials, fed my son, showered and slept (while he was sleeping), and then we went shopping for more gardening stuff. We’ve lived here 4 years and I still don’t have a shovel! Well, I bought one and spent more than I should have on dirt, summer bulbs, and garden hand tools (which we also didn’t own).

I did manage to do a bit of reading ahead (Spanning Tree Protocol) and my SuperMemo repetitions.

So what’re my plans? Some diet coke, heroes, and as much studying as I can fit in before 11pm. Tomorrow will be much of the same: gardening and studying.