Thursday, October 30, 2008

Pointer Pointer

Well i like to share some code that i worked on, for a school. It goal was to show the power of pointers.
 
  1: #include <string.h>
  2: #include <stdio.h>
  3: #include <stdlib.h>
  4: #include <ctype.h>
  5: #include <windows.h>
  6: #include <conio.h>
  7: #include <iostream>
  8: #define LOCATE(r, c) GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbiInfo);csbiInfo.dwCursorPosition.X = c;csbiInfo.dwCursorPosition.Y = r; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), csbiInfo.dwCursorPosition);
  9: 
 10: //Used to chnage console collors in windows
 11: CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
 12: HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE); 
 13: HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
 14: 
 15: using namespace std;
 16: 
 17: void paintScreen(int years), moveData(int *loca, char *buffer, float **table), moveLoc(int *loc, int year, char dir), viewTable(float **table, int *year);
 18: double findTotal(float **, int);
 19: void printCollumTotal(float **table, int *year);
 20: double findCollumTotal(float *table, int *year);
 21: float **dArray( int nRows, int nCols);
 22: 
 23: 
 24: int main()
 25: {
 26:     int loc[] = {0,0}, year = 0, i=0; //loc is the x,y loc on table, year numver of rows, i index in buffer
 27:     bool breakVar = 0; //used to brak to the outer while loop, on halt
 28:     unsigned char c;//input char 0-256
 29:     static char charBuffer[11];//buffer for imput string
 30: 
 31:     system("CLS");
 32:     puts("How many years do you want to enter? ");
 33:     scanf("%i",&year);
 34:     float **ppTable = dArray(year, 5); //makes the array/table
 35:     
 36:     paintScreen(year);
 37:     
 38:     while(!breakVar)
 39:     {
 40:         i=0;
 41:         charBuffer[0] = '\0';
 42:         while(!((c=getch()) == 9 || c == 13 || c == 224 || c == 'Q' || c == 'P' || c == 'V'))
 43:         {
 44:             if(*(loc + 1) == 0)
 45:             {
 46:                 if(c>='0' && c <= '9')
 47:                 {
 48:                     charBuffer[i++]=c;
 49:                     putch(c);
 50:                     if(i == 4)
 51:                     {
 52:                         charBuffer[i]='\0';
 53:                         moveData(loc,charBuffer,ppTable);
 54:                         moveLoc(loc,year,'R');
 55:                         i=0;
 56:                         break;
 57:                     }
 58:                 }
 59:             }
 60:             else
 61:             {
 62:                 if(c>='0' && c <= '9' || c == '.')
 63:                 {
 64:                     charBuffer[i++]=c;
 65:                     putch(c);
 66:                     if(i == 10)
 67:                     {
 68:                         charBuffer[i]='\0';
 69:                         moveData(loc,charBuffer,ppTable);
 70:                         printCollumTotal(ppTable,&year);
 71:                         moveLoc(loc,year,'R');
 72:                         i = 0;
 73:                         break;
 74:                     }
 75:                 }    
 76:             }
 77: 
 78:             if(c==8)
 79:             {
 80:                 putchar(8);
 81:                 i--;
 82:             }
 83:         }
 84:         if(c == 9)
 85:         {
 86:             charBuffer[i]='\0';
 87:             moveData(loc,charBuffer,ppTable);
 88:             printCollumTotal(ppTable,&year);
 89:             moveLoc(loc,year,'R');
 90:         }
 91:         else if(c == 13)
 92:         {
 93:             charBuffer[i]='\0';
 94:             moveData(loc,charBuffer,ppTable);
 95:             printCollumTotal(ppTable,&year);
 96:             moveLoc(loc,year,'D');
 97:         }
 98:         else if(c == 224)
 99:         {
100:             c = getch();
101:             if(c == 72)//up arrow
102:             {
103:                 charBuffer[i]='\0';
104:                 moveData(loc,charBuffer,ppTable);
105:                 printCollumTotal(ppTable,&year);
106:                 moveLoc(loc,year,'U');
107:             }
108:             else if(c == 75)//left
109:             {
110:                 charBuffer[i]='\0';
111:                 moveData(loc,charBuffer,ppTable);
112:                 printCollumTotal(ppTable,&year);
113:                 moveLoc(loc,year,'L');
114:             }
115:             else if(c == 80)//down
116:             {
117:                 charBuffer[i]='\0';
118:                 moveData(loc,charBuffer,ppTable);
119:                 printCollumTotal(ppTable,&year);
120:                 moveLoc(loc,year,'D');
121:             }
122:             else if(c == 77)//right
123:             {
124:                 charBuffer[i]='\0';
125:                 moveData(loc,charBuffer,ppTable);
126:                 printCollumTotal(ppTable,&year);
127:                 moveLoc(loc,year,'R');
128:             }
129:         }
130:         else if(c == 'Q')
131:         {    
132:             breakVar = 1;
133:             continue;
134:         }
135:         else if(c == 'V')
136:         {
137:             viewTable(ppTable,&year);
138:             breakVar = 1;
139:             continue;
140:         }
141:         else if(c == 'P')
142:         {
143:             breakVar = 1;
144:             continue;
145:         }
146: 
147:     }
148:         
149:     delete [] *ppTable;
150:     delete [] ppTable;
151:     return 1;
152: }
153: 
154: float **dArray( int nRows, int nCols)
155: {
156:     float **ppi;
157:     float *pool;
158:     float *curPtr;
159:     //(step 1) allocate memory for array of elements of column
160: 
161:     ppi = new float*[nRows];
162: 
163:     //(step 2) allocate memory for array of elements of each row
164:     pool = new float [nRows * nCols];
165: 
166:     // Now point the pointers in the right place
167:     curPtr = pool;
168:     for( int i = 0; i < nRows; i++)
169:     {
170:         *(ppi + i) = curPtr;
171:          curPtr += nCols;
172:     }
173:     for( int i = 0; i < nRows; i++)
174:     {
175:         for(int j=0;j <nCols; j++)
176:         {
177:             *(*(ppi + i)+j) = 0;
178:         }
179:     }
180:     
181:     return ppi;
182: }
183: 
184: void paintScreen(int years)
185: {
186:     system("CLS");
187:     LOCATE(2,28);
188:     puts("Data Entry Forum");
189:     LOCATE(5,0);
190:     puts("YEAR");
191:     LOCATE(5,13);
192:     puts("QUARTER 1");
193:     LOCATE(5,32);
194:     puts("QUARTER 2");
195:     LOCATE(5,51);
196:     puts("QUARTER 3");
197:     LOCATE(5,70);
198:     puts("QUARTER 4");
199:     for(int i = 6; i < years + 8; i++)
200:     {
201:         for(int j = 12; j<70; j+=19)
202:         {
203:             LOCATE(i,j);
204:             if(i == years + 7)
205:             {
206:                 puts("|");
207:             }
208:             else
209:             {
210:                 puts("$");
211:             }
212:         }
213:     }
214:     LOCATE(6 + years,0);
215:     for(int i = 0; i < 80; i++)
216:     {
217:         putch('-');
218:     }
219:     LOCATE(7 + years,0);
220:     puts("TOTAL:");
221:     LOCATE(9 + years,0);
222:     puts("Press Q at any time to Quit, V to view data reports, P to print");
223:     LOCATE(6,0);
224: }
225: void moveData(int *loc, char *buffer, float **table)
226: {
227:     if(strlen(buffer)!=0) //checks if it is already empty
228:     {
229:         *(*(table + *loc) + *(loc + 1)) = atof(buffer); //wont wipe out old data, if empty
230:         strcpy(buffer,"");
231:     }
232: }
233: void moveLoc(int *loc, int year, char dir)
234: {
235:     if(dir == 'U')
236:     {
237:         if(*loc > 0)
238:         {
239:             *loc = *loc - 1;
240:         }
241: 
242:     }
243:     else if(dir == 'R')
244:     {
245:         if(*(loc + 1) > 4)
246:         {
247:             *(loc + 1) = 0;
248:             *loc = *loc + 1;
249:         }
250:         else
251:         {
252:             *(loc + 1) = *(loc + 1) + 1;
253:         }
254:     }
255:     else if(dir == 'D')
256:     {
257:         if(*loc < year - 1)
258:         {
259:             *loc = *loc + 1;
260:         }
261:     }
262:     else if(dir == 'L')
263:     {
264:         if(*(loc + 1) > 0)
265:         {
266:             *(loc + 1) = *(loc + 1) - 1;
267:         }
268:     }
269:     
270:     if(*(loc + 1)== 1)
271:     {
272:         LOCATE(6 + *loc,13);
273:     }
274:     else if(*(loc + 1)== 0)
275:     {
276:         LOCATE(6 + *loc,0);
277:     }
278:     else
279:     {
280:         LOCATE(6 + *loc,*(loc + 1)*19 - 6);
281:     }
282: }
283: double findTotal(float *aArray, int aNum)
284: {
285:     double total = 0;
286:     for(int i=1; i <= aNum; i++)
287:     {
288:         total += *(aArray + i);
289:     }
290:     return total;
291: }
292: double findCollumTotal(float *table, int *year)
293: {
294:     double total = 0;
295:     for(int i = 0; i < *year; i++)
296:     {
297:         total += *(table + 5 * i);
298:     }
299:     return total;
300: }
301: void viewTable(float **table, int *year)
302: {
303:     double grandTotal = 0;
304:     system("CLS");
305:     puts("YEAR\tQ1\t\tQ2\t\tQ3\t\tQ4\t\tTOTAL");
306:     for(int i = 0; i < *year; i++)
307:     {
308:         printf("%-4.0f\t",*(*(table + i)));
309:         for(int j = 1; j < 6; j++)
310:         {
311:             if(j==5)
312:             {
313:                 grandTotal+=findTotal(*(table + i),4);
314:                 printf("%-10.2f\t",findTotal(*(table + i),4));
315:             }
316:             else
317:             {
318:                 printf("%-10.2f\t",*(*(table + i) + j));
319:             }
320:         }
321:         printf("\n\r");
322:     }
323:     printf("\n\rTOTAL\t");
324:     for(int j = 1; j<=5; j++)
325:     {
326:         {
327:             if(j==5)
328:             {
329:                 printf("%-10.2f",grandTotal);
330:             }
331:             else
332:             {
333:                 printf("%-10.2f\t",findCollumTotal(*table + j,year));
334:             }
335:         }
336:     }
337:     printf("\n\rAVERAGE\t");
338:     for(int j = 1; j<5; j++)
339:     {
340:         {
341:             printf("%-10.2f\t",(findCollumTotal(*table + j,year)/(*year)));
342:         }
343:     }
344:     printf("\n\r");
345:     printf("\n\rYearly AVERAGE: %-10.2f\n\r", grandTotal/(*year));
346:     system("Pause");
347: }
348: void printCollumTotal(float **table, int *year)
349: {
350:     LOCATE(*year +7,13)
351:     for(int i = 0; i <67; i++)
352:     {
353:         printf(" ");
354:     }
355:     for(int j = 0; j<4; j++)
356:     {
357:         LOCATE(*year + 7,j*19+12);
358:         {
359:             printf("|%-10.2f",findCollumTotal(*table + (j+1),year));
360:         }
361:     }
362: }

Thursday, August 28, 2008

LOL

I'm watching HSN, home shoping networking, and they are selling gateway. And they advertize 800 dollar worth softwear. Some of the titles they list is mozilas packedged thuderbord and firfox, both free opensource softwear. Just thought it was funny, nice compute though for hsn

Thursday, August 07, 2008

IP To MAC or is it MAC To IP?

Neither!

I was reading an artical on /. (http://news.slashdot.org/article.pl?sid=08/08/06/0224238) and it makes me wonder what are they thinking. Tufts University's is totaly right that it in imposiable to cross-match IP addresses to MAC addresses to idetifi users. REason one theey gave the system uses DHCP therfeore ip are randomly and dynamicly assigned to the computer. Secoundly even if you indtifed the computer, it does not help since computers can be shared fore you can not indtifi the user. Another reason which they did not give, is MAC adresses are spoofable, thefore once again it hard to 100% confirm a IP to a computer. For example if you wanted to be a complete jerk, Scan the network for other clients, (easy) copy there mac addresses, wait for them to discountect, or force them to discount, change your MAC adresses to the one you copy, connect to network, do what needs to be done, discounted and chnage your MAC to manufacture default was.

Yea, .... Ok?

Like always I have been busy. Last week of school is coming to end. That's the "Yea" part. So what now? What are my planes for the rest of the summer, you ask?  I don't know where to begin. I have a such long to do list, i don't know where i should start or how to priorities them. So to name a few in no particular order:

Gateway: My goal it to turn a old beige PC into a local gateway/firewall/AV for my home network. The plain is to have it running virtually on my old server. The only thing i'm waiting for it to come by a gibite Ethernet card.

Beowulf Cluster: This is something i been wanting to do for a few years, but don't have the money to fund it. I'm thinking about asking office buildings and public schools if they are willing to donate about 6 of there obsoltete computers. I still would need a Switch or a hub to connect them all. Switch can be pricey, and not something people are willing to throw away. I don't know if i want the nodes to be thin client/Dumb computer without hard drives. I think it will be cooler to have the nodes to be dumb and only processes task the server sends to them.

Microcontrolls, This is something i just got interested in. First i wanted to make DAQ (data acquisition) to stream data from a load cell to my computer. Secondly i was thing about making an on board computer for a model rocket that will record altitude, acceleration, and time. It also would be able deploy parachutes. I also was thinking about adding a transceiver.



Multi Touch Display. I found a good link to a walk though on how to build your own multi touch screen along with the software necessary to get everything up in running.


Linux : I need to get Linux working back on my laptop. This is something simple and should not take to long. Th hard part/ time consuming part is backing up the data before hand. I also plan to install TrueCrypt.


On the bright side i just finshed, working on a website. So acpect to see a little JavaScript example soon.

Tuesday, August 05, 2008

Mozilla Labs

Here is a cool concept videio from thr Mozilla guys


Aurora (Part 1) from Adaptive Path on Vimeo.

I will be make some more post soon, so stand by

Tuesday, June 17, 2008

FireFox 3

Download Day

Yes the day has come, download Firefox 3 now today and lets break a record.

in mean time watch Mozilla Air Live

Thursday, June 12, 2008

Longest Day...

Wow. Today is still not over! It is going by so so slow and i been non stop since 6:30 this morning, and still have morning to do. I finally had time to get something to eat. 2 papers down one more left. Just felt like i will let it out.

BTW i have a pounding head-ach

Tuesday, June 10, 2008

iPhone and Google Trends

Google trend just got an update today. For those who don't know what Google trends is, it a another service by Google still in the lab, aka beta. It allows users to track the popularity of search term, over time. You can read more about it, here http://googleblog.blogspot.com/2008/06/new-flavor-of-google-trends.html Know what are some hip, search terms going on in the web-spears. iPhone any one? A little 3G, maybe. Lets check it out: imageNotice the two main peaks, A and B. "A" falls on the date the iPhone was announced on January 9. "B" was the release date June 29.

Now lets add a little 3G and compared.image Look at how it shoot up.

Monday, June 09, 2008

New iPhone 3G :: Twice as fast Half the price

SAN FRANCISCO—June 9, 2008—Apple® today introduced the new iPhone™ 3G, combining all the revolutionary features of iPhone with 3G networking that is twice as fast* as the first generation iPhone, built-in GPS for expanded location based mobile services, and iPhone 2.0 software which includes support for Microsoft Exchange ActiveSync and more.

read more | digg story

MPAA Wants to Stop DVRs From Recording Some Movies

Another article from digg, but this is a good one. From my understanding the MPAA wantes to embed some meta code to prevent DVR fro recording it. The reason being, the movie industry was to change its realses dates, to allow comsumers to get movies earlyer. there thinking if we deliver movies early we need to prevent it from piretes degrading the rest of the businnes modle.

At first it sounds understandable. But more i think about, Why do they want to release movies earlyer? Also if this does pass, how can we prevent abuse of this power? Abuse as embeding more code to prevent or allow certin featurs.

another problem with the model it still not preventing pirets. Remeber the piret community huge copared to MPAA, and can find soultiions, fixes hacks or workarounds to allow themk ditrubit the illegal contant. Annolog any one?

just my two cents





The MPAA wants the FCC’s permission to prevent viewers from recording some movies. The end result would be DVRs that are unable to record some broadcasts.

read more | digg story

Friday, June 06, 2008

U.S. Payrolls Fall, Unemployment Rate Climbs to 5.5%

The U.S. lost jobs in May for a fifth month and the unemployment rate rose by the most in more than two decades, signaling that the world's largest economy is stalling.

read more | digg story

Video shows man hit by car, no one helping

A 78-year-old man is tossed like a rag doll by a hit-and-run driver and lies motionless on a busy city street as car after car goes by. Pedestrians gawk but do nothing.

read more | digg story

Wednesday, June 04, 2008

Robot Learning through Embodied Gaming

We have developed a client/server robot gaming system consisting of: 1) Java-based teleoperation clients that use augmented reality overlays to drive 2) low-cost commercial robot platforms (i.e., iRobot Create) at selected game severs, moderated by automated referee observers.

read more | digg story

not treated equally

I'm not talking about people, but web browsers. I was on computer watching a tv show online, using IE7. The next day i was re watching the same clip but on my main computer using FireFox. Whats the big deal, IE& showed no ads in the movie while Firefox had few. Keep in mine i had no add on or plugins in IE7 to block ads. These ads were interlaced into the flash video and flash player, which a very hard to block in there own nature. So whats up with this?

I have been running into more and more issues since i been an Opera user. I been a pritty die-hart Firefox user since beta 1.5, but have been using firefox since the first version. Firefox at the time was so attractive, a secure platform, that far superior the Microsft Internet Explorer, that allowed any one to customize it to there needs. Now Firefox is on its second beta released of Firefox 3 (code name minefild) and i was gritting tired of its massive memory resources needs. So after installing Windows xp sp3 on the laptop after the hardrive crashed, i jump to Opera 9.5 beta.

Over all Opera has a very clean interface, with built in internet tools like IRC and bittorent. My favorite is the progress bar. The progress bar let me keep track how much data i sent or received and at what speed. Also it shows how many elements are one the page downloaded and left to be downloaded. This comes useful when uploading large files, though a web site interface that does not keep track of its progress. Widgets are cool, but don't confuse them with add-ons, they lack interaction with the browser.

It's not all fun and games in the Opera world. I find my self in the the Network Site Preferences once a day to mask my user agant to indntfi me with a firefox browser. Not just because im a beta tester but because I'm a Opera user, some sites just dont like Opera browser. If any one they should be afraid of Firefox users, since that browser is far more powerful and more likely can find an exploit. Also they would not have to worry about incompatibility with the Opera browser if the site was W3C compliant.

I'm back to Firefox 3.0 Beta, and loving it. The memory issuies seemed to pluged. It is still very memory intesive beacuse it trys to cash other pages that you might visit. When I was testing kubuntu, i intelled firefox three becuse konqueror sucks. I realy got used to some of the neat and power full plugins that are out there. Some addons up me debug and websites to better understand how the request work, while other speed up page loads by blocking unnecary feilds and ads. Foxmarks also works graet syncing and backing up my bookmarks.

Monday, June 02, 2008

What to do when a hole is found?

Just the other day, i need my old high school GPA and class that i have taken. The school had an on-line system so students could check there grades. Thinking that i could still login to get the information, i gave it several trys, to realize that they no longer kept old student data.

What sparked my interest, is that on failure to login i got a 404 (page not found). I took a deeper look into the source code for the web page and found that there was no real secure authentication. The java script made a simple hash of the student ID, Turning a 5 digit integer to hex. It then tacks on the users 3 digit pin/password to the end of the hex string. It turns out this hex-string is the name of the HTML file on the server that has the students grades.

The flaws in the system are obvious. The only thing they did right was to add the directory with the student data to the robots.txt file so Google would not cache the information.

Should i let this go? Should i bring this up to the school? Would they even listen to me? Should i spend the day to write a program to anonymously brute-force every student's ID and pin, as proof how flawed the system is. I know there is no real personal info available, but why did they add the insecure authentication system.

It get worse since hundreds of schools nation wide use this exact same method, because it is part of a licenced package of software that many schools use, to keep track of students grade.

I also suspect that the pins are not random, but may derive from the student Id of students name. Since they were given, and no person has the power to change it. Hans the software that powers the grading system, generated the pin.

Sunday, June 01, 2008

Kubuntu with KDE 4

For over a month i was strictly a Linux user, and was loving it. I was beta testing Ubuntu 8.04 hardy haron with the new KDE 4 graphical environment. i chose to use Kubuntu for the fallowing reasons.

  1. Ubuntu is great community.
  2. It is fast
  3. easy to use
  4. FREE!
I went with the KDE 4, because it was brand new and it look great. I'm also a Slax user and i did like the layout of kde on my laptop. I. t ran great on my laptop, even with compiz running. Surprisings since this is a four year old laptop with a p4 and 512MB of ram. It worked great for the first 3 three weeks, until i screwed up the video card drivers.

Back on the windows platform. I'm missing the geekienes of being a Linux user. So my plan is to back up some data and clear out my old Linux portions for a new install of Ubuntu. I'm going to use GNOME this time, since i like allot of the programs it comes with. Also I feel GNOME will maximize my laptop screen space with two dock bars. The bottom dock bar i plane to covert it and make it look like the Macs's dock bar in OS X.

Saturday, May 31, 2008

Borax as a Fire-Retardant

Today i work on making paper fire proof. Reason being i need to make tubes to hold motor grains inside a the motor case. At the same time the tubes need to act as a insulator to protect the motor casing from over heating causing deformation.

The idea to used Borax, spun of Dog Barf, aka cellulose insulation. In rocket cellulose insulation is used as wadding to prevent the ejection charge from melting the parachute. Dog Barf is shredded paper and cellulose fibers coated in flame retardant material, boric acid.

From my understanding Borax is salt from boric acid, and has very much the same properties. I was surprised to find that Borax is not completely dissolvable into water. Since borax is used in laundry detergents/soaps i would think it dissolve easily. I brushed on and soaked the heavy weight paper in the water and borax slurry. I hung them to dry.

My first test showed improvement. But my second test did not show a significant improvement. More testing need to be done. One reason why my first test seemed to work, is because it might of been still wet. In my next test i will be working on away to increase the dissolvability, by either increasing the temperature of the solvent(H2O) or switch to a light acid.

Advertize on Google, Advierize on MSN Live

here is an old funny story i dugg up. I had this link saved as a draft for some time. It still amuses me even being 6 months old. So I'm going to share it.

http://blogs.msdn.com/webmaster/archive/2007/12/20/listing-google-ads-in-live-search-d-oh.aspx

Google Maps/Earth

Thursday, May 29, 2008

The disgrace in the Math system

Summer has started! And i have a laundry list of chores, task and projects that need to be completed. Don't forget school. Yea school, in the summer fun-- fun. But seriously I like school and learning. I don't know what i would do with out it. School gives my life some structure, and that is one reason why I think grade school should be year round, but that is another story. This week i have been very upset with my math class I'm taking. First i feel that I'm good at math. Math is one subject that seems to separate students. I don't know why this subject sticks out in the school system, but starting in 5th grade i have always placed in an accelerated or advanced math classes. This is fine by me, i like the learning and the challenge of problem solving. The problem spawned in my senior year, when i could not fit in A.P. Calculus in my schedule without losing my Java and Physics class, so i did not take a math my senior year. That was a huge mistake

Now i go to a school that has an open door policy, meaning they don't look at your transcripts, and any once is accepted that can afford it. My first semester i took statistics because it was assigned to me by an adverser who i never saw. That was my second mistake, not having a clear plan of what classes i need to take. I got smart and realized what program i should work to and what classes are needed. Math is critical in the program i picked, going all the way to calculus three. But i had to start on some what the bottom with College Algebra. For the most part i learned most of same material in high school algebra two, but it was a nice review, and i did pick up some new techniques.

Since i have a lot more math ahead of me, i took a summer class to catch up. Pre-calculus is next. Once again i took honors pre-calculus my junior year in high school. Being a summer class i though this would be accelerated, and will provide some challenge but i was dead wrong. The class uses the same book i had to use for college algebra, and looking at the syllabus we go over the same materiel besides two chapters. The class is suppose to be two hours long, but we spend 30 minutes do homework, and we have been leaving a half an hour early. So that is almost half of the class missing. Last week, the teacher almost through me off the edge when the class was let out 45 minutes early even though their were more sections to cover.


This upsets me greatly because this class was not cheap and I'm not getting the challenge i was hoping for. Worst yet the teacher is slow and not so smart. The class goes page by page, the teacher reads the text book for verbatim as if we we were preschool students at story time. What also up sets me, the class ends early every day. I understand if we cover all the material that needs to be covered for the day, but no. i feel that the teacher does not even know the material that well, since she is using all the examples in the book. She is not coming up with her own problem, and solve the problem step by step like how book has it.

Monday, May 26, 2008

Destination Vs. Journey

I feel as though I came about sentence that is worthy of becoming a quote today. "It is not the destination that matters but journey"I think it is original, but have not had the time to look it up yet. I don't think it is to hard to comprehend, but would like to indulge into it more, when i have more time tomorrow.