Thoughts of an Angel
 
As one who considers herself a spiritual person, as was raised as such, I'd like to think that I am fairly well-educated about most theological matters.  I find it quite important to know what you believe and why.  If nothing else, college has given me opportunity upon opportunity to "sharpen my claws," as it were.  The same concept applies to computers.  If you think that sounds cheesy, you may be right.  After all, who would think that the belief you may base your values and morals on is akin to technological beliefs?  Don't believe me?  Try telling a Mac user that they may even be *remotely* wrong and you may have a technological Jihad on your hands.  Personally, I don't mind debate, and even welcome it - so long as one is well-informed about their subject matter.  What I believe that few people realize is that when they argue Mac vs. PC, they are essentially arguing over whether to have green beans or strawberries for dinner.  They reach out to different target markets with little overlap.

The Church of Macintosh - I have to hand it to Apple.  They know their market.  Many of its consumers buy their products because they want a computer "they can just use."  So, Apple heard the cries of their consumers and built one of the most stable OS's around - the Macintosh OS.  You don't have to think to use it.  That's the beauty of it.  One of the primary factors leading to its stability is the proprietary hardware, Apple's middle finger stuck out to you daring you to not try to install its OS on any other hardware.  (Hackintosh to the rescue!) I see that anyone who tries to use it beyond its capability (which isn't saying much) happens to be the one to experience problems with it. 
Then we have the all-inclusive Apple Care.  If you were able to actually afford the machines in the first place, you have to pay more for the AppleCare - the only way you're going to get the computer fixed for cheap, if not free.  Now, I have heard no complaints about AppleCare.  In fact, I hear nothing but praises from them.  Still, one would think that after paying the nearly 50% premium for a Mac, they would just get the AppleCare with the product.
The other reason people love the Mac so much is that it doesn't get viruses.  A quick read of this FierceCIO article and a US-Cert site search will tell you otherwise.  The only reason they don't get many viruses now is because of their low market share.  While their individual market share is increasing, their corporate share is lost to Microsoft. Corporations are who hackers generally want to go after.

The Microsoft Cathedral - While Apple is busy reaching out to the average everyday tech consumer, Microsoft is focusing on one of its strengths - business software.  Their Azure program was released primarily for businesses (if you want a private cloud, just get a VM).  After being at the TechEd Conference and through the Imagine Cup IT Challenge competition, I have found that it is possible to run your entire home, business and IT architecture off of Microsoft products alone.  I'd like to see any other proprietary-based software company do that.  This is why Microsoft has a majority of the corporate market share.
One of the things that I believe Microsoft suffers from is the same as Google with their Android phones - hardware inconsistency.  If you want to build a computer from scratch, you build a Windows computer.  Within reason, you can customize it right down to the amount of circuits you want on your motherboard, and if your mobo was properly built, Windows will still run on it.  Fantastic and terrible at the same time.  The only real trouble with such hardware flexibility is that with inconsistent specifications, you're going to get inconsistent software behavior.  All an OS is is a GUI interface between the user and the hardware.  So, it is up to Microsoft to continue broadening their OS's capability to communicate with different types of hardware.
Amazingly enough, Microsoft only now started including anti-virus software with its Windows 7 machines (not that it didn't need it). 
While Apple is indeed catching up in the gaming department, so far, nothing's been able to beat Windows Aero in the graphics viewing - a gamer's dream come true!  =)

Linux - What?  No church name?  Linux does not need that purely because there is no standard to measure against.  What I mean by that is that if I tried to compare the Linux OS, then I would have to compare all distributions - maybe that'll be another post.  These OS's are more for the saavy who just likes to make their own things - which I admire.  I like the spirit of the developers.  Heck, I've been contemplating turning this laptop into a Linux box.  We'll see about that though. 
Tl;dr - Don't bother with Linux unless you a) *really* don't want to think about what you're clicking (might I suggest Ubuntu or Mandriva?) or b) can do nothing *but* think about what you're doing (you'd love back-trac, RedHat, Fedora, etc). 

In the end, it's all a matter of personal taste and needs.  A Mac is going to be better at fulfilling some needs more than Microsoft is and vice-versa. 
 
 
So, I'm embarking on my first "real" Java project (er, so I want to do this in Java).  This project is in the form of an application that helps control inventory.  For every time the barcode on a box is scanned, the inventory count decrements by one.  I've got the algorithm and the arithmetic involved down.  I just don't know how to get the Java application to recognize USB input (such as something like a mouse).  So now I inquire: how would you go about doing this?

Thanks,
Angela Fox
 
 
Due to some needed correction, I have redone the test and made sure that they both came from the same servers (thanks, Billy!).
Picture
Google Chrome
Picture
IE9

Eh...they have their trade-offs, it looks like. 

My guess would be that given that we were on a Microsoft network in Atlanta, that something was configured specifically for the browser, IE9.  Still, "kudos" to Microsoft for making their browser a great deal better over time. 

I still maintain that Bing makes for an awful verb. 
Professional Tip of the Day: Now go Bing yourself.
 
 
I am in Texas again.   Here are the results:
Picture
Google Chrome

Picture
IE9

'Nuff said.

As for location, I am currently in Arlington, the sweaty and slow armpit of internet connectivity.  I only have to sit on a different side of a couch before my phone begins roaming.  And well, the router was $15 at a garage sale...and it's AT&T service (can someone say *blegh!*?).

I also noticed that IE9 had to draw from a different server, which I find interesting. 

Anyhow, g'day!
 
 

Normally, I avoid "technical women's" events like the plague.  Most of them discuss either how to be a man or how to find other women and seclude themselves from the evil, gross, stinky, sex-ridden, and sometimes creepy men in their workplace (or so the impression seems to be).  So far, however, most of my experiences with working with men in IT and Sound Engineering (my first love) have been positive.  Then again, I'm a bit of a tomboy at heart.  I make friends easier with guys than most women - no drama, no super loud high-pitch squealing and/or screaming on excitement, they get right to the point when they speak (perfect for my attention span...or lack thereof), and being logically wired, most of what they say makes sense.  Men are just mentally wired differently from women.  And frankly, I feel that most women take on a sort of "victimized" mentality in the technical workplace by just automatically assuming that life is out to get them because they were born a woman.  Albeit, it is not easy sometimes.  It's even a little overwhelming at times when your thought process is not lined up with the rest of your team (i.e. left-brainers vs. right-brainers, process-oriented vs. detailed oriented).  It's really not that bad though.

Needless to say, this women's luncheon was quite good (as was the food, though I'm pretty sure my table was served last).  I enjoyed the panelists who were speaking.  They gave good advice to those of us who had questions about working in the industry from how to deal with male family members who are not supportive to how to get the men at work to take us seriously.  There was one question that I had that never got answered however, one of etiquette: I've never had so much problem working with men as I have dealing with their significant others.  For instance, when I started working at the Help Desk, my manager's wife (who is also IT, but different department) gave me the evil eye for the first several weeks.  It seems that after I became engaged, she's a great deal more friendly to me now.  I've come across this before in the work place.  I can't help it - I'm just naturally friendly.  It seems that the best anecdote is communication.  While there are still some women who are just naturally jealous, it usually at least helps to try to talk to the girl more than the guy while in the presence of both of them.  I know I'm not alone though.  When I told all the ladies at my table about this, they all were like, "Hey, that's my problem too!  I thought I was the only one who dealt with that!" I'm glad to know I'm not the only one with that problem.

If you're a guy, how do you suggest you deal with this?  If you're a girl, how do you deal with this? I'm interested in contrasting opinions. 

'Til next time.
Angela


 
 
With 10,000 attendees from 84 countries, 800 Microsoft participants, Microsoft TechEd 2011 is hosting 551 unique sessions and 250 hands-on labs (among other things).  As of a bit after 3:00pm, here is my summary of the day:

We (the bloggers and Imagine Cup team) walked in right before the sounds of The Glitch Mob played masterfully as our pre-show entertainment.  Our Imagine Cup team stood up to the sound of applause shortly after talking about their successful project which involved portable medical imaging/ultrasounds in order to give much less expensive access to diagnostic health care for people who are unable to afford it.

Robert Wahbe, CVP Server and Tools was our keynote speaker who talked about many applications of both Public and Private Cloud that included extending existing applications, dealing with large data sets and data warehousing, reaching larger capability of high performance computing, better opportunities for promotion of events and content distribution, and better using the Cloud for marketing campaigns and gaming web sites.

Several demos were put on that I found quite interesting.  
Joey Snow demonstrated a few Cloud services such as requesting Private Cloud capacity, deploying from the System Center via a New VMM Service Deployment, and Public Cloud deployment.
Amir demonstrated one of the ways that the Cloud can be used as a Business Intelligence System by using PowerPivot to create full spreadsheet, database, and graphic functionality.  For those nay-sayers who believe the Cloud is not capable of good speed - think again.  In the time that it takes to blink your eyes, he performed a query on a database consisting of 2 billion records, retrieving a bit more than a million of said record matching his query.
Augusto Valdez demonstrated Cloud-Based Productivity via Windows Phone 7 and its ability to sync with its PC-based software via the Cloud.  He showed us how to sync with Outlook as well as Lync via Lync Mobile.  Finally, he showed us the e-mail security capabilities that one can use on Windows Phone 7.
Edwin Yuen presented what was perhaps my favorite demo - the Worldwide Telescope using the X-Box Kinect.  He was able to show us a literal real-time view of events and objects such as the greatest solar eclipse that will ever happen in our lifetimes in 2014 as well as the entirety of the known universe.
Cameron Skinner discussed managing the life cycle of applications using the example of utilizing the Cloud for communication between the Operations side of IT (Infrastructure) and Developers to meet the needs of the customer, understand the requirements, and agree on the priorities of the application.
There was one more demonstration of making an application to address how a call center assigns tickets to technicians.

After wandering about the Convention Center for a while (this is a HUGE place with SO much to do!  You really should be here!), I went to a session on "Wiretapping."  It is a basic how-to session on using Wireshark to capture and analyze traffic.  This is discussed in the next entry if you're interested...
 
 
I have finally implemented the QuickSort algorithm.  I feel like I've made some progress!  I did have to "borrow" some code from www.dreamincode.net, so all credit given to whom all it is due.  I did at the very least take some very thorough notes about what the code was doing.  You can find this here:

#include "stdafx.h"
#include <iostream>
using namespace std;

/* Note to self: Self, the syntax is not to say "public: class."  This is not Java.*/
class sortOut { 

/*
Intake is responsible for accepting values into an array
The "*" notation is a pointer, allows for passing by reference to memory rather than the value itself.  
This notation is recommended for memory allocation devices (i.e. arrays, vectors, etc). There's not much 
of another way for the main() method to know what values to pass on to other methods being called.
*/
public : void intake(int *store) 
{
int number = 0;
cout << "Please give me 10 numbers: ";
for(int i = 0; i < 10; i++)
{

cin >> number;
store[i] = number;

}//end for

}//end intake function

/*
Exchange tells the arrays in the subsequent methods how to swap numbers.  
It puts int a into a temporary variable to be assigned to b, which will in 
turn equal a.  
*/

public : void exchange(int &a, int &b)
{
int temp;
temp = a;
a=b;
b=temp;
}

/*
sort() is in charge of sorting out the numbers (DUH!).  It accepts the store array passed by reference, 
the int representing the first element in the array, and the int representing the last element in the
array as arguments. 

The pivot point is set to the first element in the store array.
It will check to see if the last element is greater than the first element in the array.
If so, the int dividePoint is assigned to the function split().  split() is called for value assignment.
The pivot point is then assigned as the point of array division.
As recursion works, the sort function is the recalled until the the array is fully sorted.
*/
public : void sort(int* store, int firstElement, int lastElement)
{
int pivot = store[firstElement];
int dividePoint;
if(lastElement > firstElement)
{
dividePoint = split(store, pivot, firstElement, lastElement);
store[dividePoint] = pivot;
sort(store, firstElement, dividePoint-1);
sort(store, dividePoint+1, lastElement);
}

}// end sort

/*
split() is the function that divides the array.  Essentially, the array splits itself in half, sorts those halves, 
then those halves split in halves where those are sorted, and so on.  The process restarts itself until the array
is fully sorted.

The firstElement is assigned to be the leftmost element.  The last element is assigned to be the rightmost element.
While the leftmost is less than the rightmost elements in the array, and the pivot point is less than the rightmost element and
the rightmost element is greater than the leftmst, the rightmost moves to the value left of it (from 9 to 8, etc) and tests to see if that element
is greater or less than the pivot value.
exchange() is called to swap values found unsorted in each round in the loop.

The process is much the same for the while loop testing to see if the leftmost value is less than the value of the pivot.  
As it finds values that are in their proper place, it moves on to the value to the right (from 0 to 1, etc) to test values some more.
It is to return the leftmost value in order to begin the splitting and sorting process all over again until the array is fully sorted.
*/
public : int split(int* store, int pivot, int firstElement, int lastElement)
{
int left = firstElement;
int right = lastElement;

while(left < right)
{
while(pivot < store[right] && right > left)
{
right--;

}
exchange(store[left], store[right]);
while(pivot >= store[left] && left < right)
{
left++;
}
exchange(store[right], store[left]);
}
return left;
}
};

/*
main() is self-explanatory.  Remember to initialize values in the functions that are called.  In most sorting algorithms
involving a pivot point, the pivot is going to equal 0.  The leftmost and rightmost array values are assigned to the
elements that they represent.  Remember also to create an instance of the class you're callling functions for.

exchange() and split() were already called in/by the sort() function, so there is no need to call them in the main() method.

It is best to have the output in the main method so that you know that all methods were implemented properly.
*/
int main()
{

sortOut s; // Need to create an instance of the class
int storage[10];
int left = 0, right = 9;
int pivot = 0;

s.intake(storage); // Small o -> O
s.sort(storage, left, right);

for(int i = 0; i < 10; i++)
{
cout << storage[i] << " ";
}



return 0;
}