Monday, November 15, 2010

Study Abroad In Hong Kong

If anyone is interested in a study abroad, City U of Hong Kong looks to be a great opportunity, especially for those studying Information Systems. They offer a vareity of courses in Business Process Managmenet, Business Analysis, Business Intelligence, as well as several other Iinformation Systems oriented courses.

With the cut backs to education in California, courses and programs are being sliced away, so a study abroad provides an opportunity to take core major courses as well as exciting electivies while abroad.

Some advantages of the bi-lateral program through SFSU:

  • Cost of Living: $700 for the whole semester
  • Selection: Rich industry aligned selection of courses, many courses already pre-approved by College of Business at SFSU (consult advisor).
  • Resident: While on study abroad through SFSU, you still remain a California resident.
  • Financial Aid: All federally fundeded financial aid one receives at SFSU counts toward the study abroad, as this is officially sanctioned program by SFSU.
  • Articulation: All courses taken count as if taken at SFSU (not transfer credit or foreign university credit), as this is official sanctioned program. Particular articulation needs to be worked out with advisors and department chair. Consult your college advisors.
  • Experience: Gain invaluable international insight from both courses and societal experience that will impact your life, academics, and professional career.
  • Cost of Books: Books outside of USA/Canada cost roughly 40% of the costs one would pay in USA. These are International versions of the book (which is the same book with a different cover, often times page-per-page formatting is the same).
  • Cost of Foods: Unlike at State and other campuses, the food does not cost more for students, but oftentimes less.

    Need I say more? A study abroad experience is an amazing opportunity, and often times costs less.

    After I complete the program, I will report on my experiences to get more details. I think overall, regardless as to whether the courses meet my expectations, I think the program may be a great opportunity.
  • Tuesday, August 24, 2010

    Learning Statistics Through Scripting

    In looking at the problem sets in Statistics, it occurred to me that you can simply script the solutions in your favorite language for not only learning the scripting language, but for reinforcing Statistics.  Many scripting languages (PHP, Perl, Python, Ruby) have undoubtedly some third party charting tools, and then there's also the famous RRDTool.  For PHP specifically, I came across these gorgeous screen shots of pChart: http://pchart.sourceforge.net/screenshots.php?ID=25.  A close friend of mine mentioned that JpGraph was better (http://jpgraph.net)

    For Windows die-hards, I'm sure there's a way to use PowerShell and either third party .NET charting programs or simply commandeer Excel to output the charts.  This could also be done through the older VBScript or even famous underground swiss-army knife of tools used in IIS called LogParser with the output of CHART.  I came across this blog on the topic:


    For Java, long ago my friend in Japan mentioned JFreeChart

    Some other impressive ones were:

    Tuesday, June 15, 2010

    Limitations of E-R Model

    Before in the assignment for my class (ISYS 464 Enterprise Data Management), my group saw how the asset could be a support contract, software, and hardware, which all have unique characteristics and many similar characteristics.  Each asset is assigned to a user (operator), supported by some IT staff, and purchased (owned) by some manager.  To represent this in traditional ER model, it would have to look like this.



    The ER Model cannot distinguish between different types of objects that share qualities, but differ slightly. We decided there must be a better way...

    Sunday, June 6, 2010

    Asset Management Application: E-R Model

    In one project for a class (ISYS 464 Enterprise Data Management), I created a small asset management application that could be used for information technology support group to track the assets such as software, hardware, and support contracts.  These would store the order information and reseller information, in case this needed to be referenced (such as a return or getting service).

    Here's a simple Entity-Relationship model.



    The crazy part of this is that the asset can be three different types of assets: support contracts, software, and hardware.  The support contract can support a software asset or a hardware asset.

    The asset itself can be assigned to a user, managed by support, and purchased (owned) by a manager, all of which are some type of employee.  There's not distinction in the type of employee, other than has the asset relates to the employee (owner, user, supporter).

    So the question is how can this be easily represented?

    Friday, June 4, 2010

    Purple Screen of Death

    So I tried again to get VMWare ESXi running on my small Shuttle, this time with ESXi 4.0 upgrade 1, but alas, I got the purple screen of death:

    ESXi vs. Shuttle X27D

    School is out, so now the real learning must begin.  I thought of taking VMWare ESXi out for a stroll, and put this on the sexy petite Shuttle X27D.  But alas, I can't get no satisfaction.  Grrr.

    I'm stuck with the error:  Failed to load lvmdriver.



    I'm guessing that the problem is that I am using an external USB cd-rom player.  I will try to scavenge an internal slim cd-rom player from another system.


    Sunday, May 30, 2010

    Microsoft Active Scripting

    Internet Explorer prompted a message telling me to turn on ActiveScripting that it defines as:
    Active scripting is a Microsoft technology that allows different software components to interact with one another in a networked environment (in this case, the Internet), regardless of the language in which the components were created. Active scripting is what allows Web pages to use animation and to change their content dynamically.
    But really, I think the explanation should be this:

    Active scripting is a Microsoft technology that allows different vulnerable components to interact with hackers in a networked environment (in this case, the Internet), regardless of safety precautions you take to stop the components from being installed.  Active scripting allows Web pages to install malicious software and infect your system dynamically.
    After 15 years of trojans, viruses, and other malware infecting Windows systems through this feature in Internet Explorer, the same type of tricks used to hack peoples' systems as they browse the Internet still work.

    Thursday, May 20, 2010

    Domain Modeling

    In researching for how to model a rather complex project for a course (ISYS 350 Building Business Applications).  I came across something quite by accident when pursuing the book titled Pro ASP.NET MVC Framework by Steven Sanderson.  He introduced Domain Modeling.

    From what I discerned, I noted the following:
    There are these components: entities, value objects, and aggregates.

    The entity has an ongoing identity throughout its life time and has a unique (primary) key, while value objects are defined purely by value of attributes, are logically immutable, and have no key.

    An aggregate is an arrangement of entities into a group that share some related function.  An aggregate has a root entity that can be related to entities outside of the aggregate.
    What I was thinking was that this is a good model to design business applications and it can provide a common language for both engineers and business professionals, much in the same way E-R (Entity-Relationship) modeling works for relational databases and SQL. 

    These types of modeling methodologies can help align technology pursuits to the business needs, something that is perfectly align to roles of business analysts, an area of my interest lately.

    The author also mentions Domain Driven Design (DDD) who he credits to another author, Eric Evans.  Eric Evans published a book titled Domain-driven design: tackling complexity in the heart of software.  At some point, I would like to thumb through this book...


    Citing UNIX Man Pages in MLA format

    My professor for CS 260A Linux System Administration at CCSF wanted me to cite my sources that I used for my presentation.  I did a small Single Sign On presentation covering mainly PAM (Pluggable Authentication Modules) and NSS (Name Service Switch).

    As a lot of research in UNIX or Linux requires references help files within operating system (man pages), I was wondering, just how does one cite man pages?

    I think the man pages as sources of information are just as legitimate as any other source.  But unfortunately, I could not find any reference online to how to do this.  Thus, I invented a standard, using pieces from citing Encyclopedias and from referencing web pages. 

    So far I came up with this:
    • "Man Page Title." Operating System Version Name, Name Version. Man Page Tomb, Date: Man Page Reference. Shell. Date Accessed <command-to-get-man-page>
    These would be some examples:
    • "Pluggable Authentication Modules for Linux." Karmic Koala, Ubuntu 9.10. Linux-Pam Manual, August 2008: pam 7. Shell. 8 May 2010 <man pam>.
    • "System Databaes and Name Service Switch configuration file." Karmic Koala, Ubuntu 9.10. Linux Programmer's Manaual, January 1999: nsswitch.conf 5. Shell. 8 May 2010 <man nsswitch.conf>.
    • "System wide and per-user daemon/agent manager." Snow Leopard, Mac OS X 10.6.3. BSD System Manager's Manual, May 1999: launchd 8. Shell. 20 May 2010 <man launchd>.

    Monday, May 17, 2010

    Single Sign On

    I was a guest presenter at CCSF (City College of San Francisco) for a CNIT 270 Linux Network Administration course.  My topic was Single Sign On.  I found that this topic is immense and felt challenged to organize the material as well as relate it to the students.  

    Many were overwhelmed and some seemed bored at points, while a few were familiar with the topics and had some good questions.  I organized the sections as:
    • Business Case
    • System Admin. Configuration
    • Network Admin. Configuration
    • Final Notes
    Here's the presentation I did:



    The students asked some great questions (answers and links indented):

    Tuesday, May 11, 2010

    Dabbling with Web Style Sheets

    Today I just kicked off one of my projects for a class (ISYS 350 Building Business Applications) at SFSU to do form processing through JSP (Java Server Pages) and JavaScript.  It's a really basic assignment where I have to calculate monthly payments.  As I was doing this assignment, I recalled cool web tricks I learned from a Japanese book on the topic.  I wondered if I could recreate some of these effects.  So I searched for rounded corners and color schemes on the Internet.

    I found two sites that drew my attention.  One was this awesome tutorial on the new exciting CSS3 (Cascading Style Sheets version 3), which allow you to create awesome special effects without resorting to images or Flash.  Only text is downloaded and the browser handles the special effects.  All the browsers, except Internet Explorer support these new features.  Check the tutorial out at: http://www.zenelements.com/blog/css3-introduction.

    Another place was this German site (http://crosstec.de/) that had some inexpensive kits to create very attractive form user interfaces.  I will probably use these in the future, but until then I was able to gather enough information to dress up my project:


    After adding this, the assignment was more exciting to complete.

    Tuesday, April 27, 2010

    Migration to Business Roles: Reflections

    I was in my UNIX Network Administration course, a recreational course I am taking for fun, and I was discussing my plans.  The instructor was saying this was very high level (especially in contrast to nuts and bolts of UNIX).  I was like, well, perhaps, but someone has to bridge the gap between technology and business.  I explained that I want to empower business managers to make decisions, and help them understand technological limitations and opportunities.  I also what to be a champion of engineers and IT folks, to let them know that their needs and requirements are considered when executives craft business plans.

    This always has been my goal, ever since I saw a brilliant project manager and vice president at Imaging in Apple Computer back in the day.  I was inspired from these role models.  At the same time, I was frustrated by infamous executives and directors that made decisions, which really showed lack of technological competence...

    From here, I knew I needed to make a difference, and I dreamed of being an empowered technical person in the world of computing.  This was back in the 1990s.  A Business Analyst is just one of the roles that can help gain skills in this area, at least so far as can tell from my incipient knowledge.  I think this can branch out into process analyst, project management, product management, and other forms of analyst or management.


    Tuesday, April 13, 2010

    Training for Business Analyst

    The UC Davis extension program offers a certificate in Business Analysis based off of BABOK Guide 2.0.  From several sources, this is the one program close to the Bay Area that I have found.   The total costs of the program covering 6 knowledge areas will cost $5150 to $5500, not including the $45 certificate application fee and textbooks.  The courses are offered completely online.

    On their website covering Business Analyst, they state that salary survey shows that analysts earn more than $100,000 per year and are among the top 20 most recession-proof careers.  The part that gets me personally excited is the following text from their site:
     The dependence on technology has created the need for individuals with the ability to bridge the gap between business and IT.  Business analyst provide this crucial llink between functional areas such as human resources, finance, marketing, research and development, and IT.
    They cover 6 areas that include as listed on their site: Business Analysis Fundamentals; Business Analysis: Planning and Monitoring; Enterprise Analysis: Defining the Business Need; Requirements Elicitation; Requirement Analysis, Management and Communication; and Solution Assessment and Validation.


    The cost for the introductory course will be $685 with a 10% discount for PMI or IIBA members and grants 25 CDU or 25 PDU for earned credit programs for various certifications. for project management and business analyst  I was considering on taking the summer course, assuming I can save up enough for that course.

    References:







    Business Analyst, Part Deux (IT Bus Skills)

    The Underlying Competencies mentioned in the BABOK Guide 2.0 is further broken down into:
    • Analytical Thinking and Problem Solving
      • Creative Thinking
      • Decision Making
      • Learning
      • Problem Solving
      • Systems Thinking
    • Behavioral Characterisitics
      • Ethics
      • Personal Organization
      • Trustworthiness
    • Business Knowledge
      • Business Principles and Practices
      • Industry Knowledge
      • Organizational Knowledge
      • Solution Knowledge
    • Communiation Skills
      • Oral Communicatons
      • Teaching
      • Written Communications
    • Interaction Skills
      • Facilitation and Negoiation
      • Leadership and Influencing
      • Teamwork
    • Software Applications
      • General-Purpose Applications
      • Specialized Applications

    Monday, April 12, 2010

    Business Analyst (Business Skills)

    In addition to project management, I identified business analyst as another set of skills related to information systems.  There are several paragraphs that define business analysis from BABOK Guide 2.0 (Business Analysis Body of Knowledge) by IIBA (International Institute of Business Analysis).  My favorite line is: business analysts often play a central role in aligning the needs of a business units with the capabilities delivered by information technology, and may serve as a "translator" between those groups.  They listed project management, software development, quality assurance, and interaction design as related disciplines.

    The BABOK Guide 2.0 lists these as knowledge areas:
    • Business Analysis Planning and Monitoring,
    • Elicitation,
    • Requirements Management and Communication
    • Enterprise Analysis,
    • Requirements Analysis,
    • Solution Assessment and Validation,
    • Underlying Competencies,
    There are application areas for business analysis and related professional bodies of an area listed in BABOK that I found interesting: Agile Development, Business Intelligence, Business Process Management, IT Service Management (ITIL), Lean and Six Sigma, Project Management, Software Quality Assurance, Software Process Improvement (CMMI), Strategic Planning, and Usability and User Experience Design.

    Saturday, April 10, 2010

    Decision Management and Process Analytics

    This is a curiosity for me to learn more about business side to information systems.  In doing research in the area of BPM (Business Process Management), I came across other related tools in the umbrella of process analytics and overall field of decision management.  Some of the terms I discovered are:
    • PA-DM (Predictive Analytics and Data Mining)
    • BAM (Business Activity Monitoring)
    • KPI RMM (Rules Maturity Model)
    • CEM (Customer Expectation Management)
    • BRMS (Business Rules Management System)
    • BI (Business Intelligence)
    • BPI (Business Process Improvement)
    • Lean Based Approaches
    • Six Sigma
    • TQM (Total Quality Management)
    • BRE (Business Rules Engines)
    • BDM (Business Decision Management)
    • BRM (Business Rules Management)
    Some of the modeling tools used for these are something like UML and OMG's BPMN (Business Process Modeling Notation): http://www.bpmn.org/.   I am sure at some point some of this are turned into abstract E-R models as well when it comes time to implement databases.

    There is training in BPM offered by BPM Institute (http://www.bpminstitute.org/) and BP Group (http://bpgroup.org/) and the recent Association of Business Process Management Professionals (http://www.abpmp.org/) with their BPM Body of Knowledge (BPM CBOK).  UC Berkely Extension offers a course called BPM Process Modeling, Analysis, and Design using BPM CBOK: http://extension.berkeley.edu/cat/course2216.html.

    There seems to be a lot of momentum on CEM (Customer Expectation Management), and there's a group offering certification on that IPAPI (International Process and Performance Institute) and their CPP (Certified Process Professional): https://ipapi.org/open_courses.php.

    Suffice to say, there's a lot of material out there, I can spend a day going through all of this, and the field is developing fast.   I have doubts that our public universities can respond quickly to cover the developing field.  Though, San Francisco State University used to offer a course in BPM, i.e. ISYS 569 : Information Systems for Business Process Management (http://www.sfsu.edu/~bulletin/courses/32203.htm), and they offer ISYS 650 : Business Intelligence (http://www.sfsu.edu/~bulletin/courses/33257.htm).  Though the later, I heard was not a good course.

    Wednesday, March 17, 2010

    What can you Expect?

    I was playing around with a UNIX command line tool called Expect.  It is used for handling interactive sessions, which can occasionally come in handy for using some telnet like applications.

    For myself, I'm lazy, and hate to memorize all these different configurations and such, so I created this:
    #!/usr/bin/expect

    set USER "hsolo"
    set SRVR "falcon.server.net"
    set PSWD "secret"

    spawn ssh $USER@$SRVR
    expect "Password: "
    send "$PSWD
    "

    interact

    Tuesday, March 16, 2010

    Project Mgmnt Knowledge (IT Bus Skills)

    For detailed specifics into the field, PMI documents their standard in a book called PMBOK (Project Management Body of Knowledge).  You can purchase the book or become a member, which will give you a free e-book (encrypted PDF).  The version I acquired from membership is 4th edition.

    In here, it states that a project is defined as a temporary endeavor undertaken to create a unique product, service, or result.  Project management is defined as the application of knowledge, skills, tools, and techniques to project activities to meet the project requirements. 

    They have 5 knowledge areas:
    • Project Integration Management,  
    • Project Scope Management,  
    • Project Time Management
    • Project Cost Management
    • Project Quality Management,  
    • Project Human Resource Management,  
    • Project Communications Management,  
    • Project Risk Management, and 
    • Project Procurement Management.

    Project Mgmnt Certification (IT Bus Skills)

    A great area to enhance existing skills in IT is in the area of project management. The most widely accepted industry standard regarding project management is PMI (Project Management Institute).  They offer certification in this area: CAPM (Certified Associate in Project Management) for passing the exam or when combined with 5 years project management experience, PMP (Project Management Professional).  Each of these requires some training from accredited courses.

    The requirements for each certification is different if you can make out the graphic on the side here.  I would recommend that anyone interesting in exploring getting credentials look into how to represent or show project management experience their prior, current, and future jobs.

    Saturday, March 6, 2010

    Project Mgmnt Training (IT Bus Skills)

    One can get training at an accredited private training schools or through many university extension courses, such as CEL (College of Learning) at SFSU: http://www.cel.sfsu.edu/project/.


    For a more general course, San Francisco State, under their Information Systems program, offers ISYS 663 IT Project Management: http://www.sfsu.edu/~bulletin/courses/30449.htm. The good thing about this course is that there's some additional information, such as implementation details, training in Microsoft Project, and some analytical exposure for cost analysis, such as NPV or ROI.  The downside to this course is that they require a large quantity of pre-requisites.  It is not unusual to see a group of students attending this course through Open University as guest students.


    Friday, February 19, 2010

    Technical IT Skills: State College

    One way to get credential in our society is to get some sort of degree, such as a undergraduate degree from a CSU (CalState University).  You can gain a lot of important basic business skills in areas of accounting, finance, economics, statistics, marketing, international business, and information systems.  I think to run your own business or to step into management in IT, these essential business skills are definitely required.

    But for gaining hands on skills, I have to question whether you can learn this from the state college,  at least in the exposure I have gained from Information Systems courses at SFSU (San Francisco State University).   You'll get some exposure to programming, database, and networking, but this alone will not be enough to gain employment where you'll have to implement, maintain, and manage information systems.

    To gain the hard skills (technical skills), you'll have to find a way to learn this on your own.  You can learn particular systems from community colleges or extension courses, but not at state.  And in any of those programs, you still are required to do a lot of analysis and research on your own outside of any course or training program.  Thankfully, through a well rounded education, you should have the required analytical, objective, and research skills, to gain more out of any program.

    Technical IT Skills: Certifications

    The certifications are a great way to gain recognition of your skill set, but smart companies, also check whether you have the skills to match the certification.  After all, there are many that can memorize material for a test, but not actually understand the material involved.

    I will talk later about certification specifics.  If you would like to research now, Microsoft has MCSE (Microsoft Certified Systems Engineer) for Windows.  For UNIX, you have SCSA (Sun Certified Systems Administrator) and SCNA (Sun Certified Network Engineer) for the Solaris operating system.  And for Linux, there are many, but the one most recognized in the industry is RHCE (Red Hat Certified Engineer) for Red Hat Enterprise Linux (RHEL).  Another one that could potentially become popular, due to the popularity of the Ubuntu Linux, is LPI 199 or Ubuntu 199.  One can become an Ubuntu Certifed Professional if they pass Linux Professional Institute's LPI 101, LPI 102, and LPI  199 (Ubuntu 199).

    Technical IT Skills: Basic Hard Skills

    In any scenario, a company is going to pay you for some skill you know that enables them to make a profit in some way (whether financial or not).  So you have to ask yourself, what will they pay me for?  In IT for a systems administration role, this will including setting up and maintaining services and networking.  These services would include file and print services, e-mail server, web server, database server and others.  More advance and complex services, and thus more earning potential,  would include security solutions, automation solutions, backup and disaster recovery solutions, and especially single-sign-on solutions.

    At the community colleges around the Bay Area, there's tons of courses one can take.  They range from programming, scripting, operating systems (MS Windows, Linux), web servers (Apache), database servers (MySQL, MS SQL, Oracle), e-mail servers (MS Exchange), networking (CCNA), security, etc..  You can learn a lot from these courses, but ultimately real skill is acquired when you apply the knowledge, either at the work, or experimenting at home.

    Here's some college int the area that offer IT oriented courses:

    Getting Programming Skills

    These days at college in education, professors have become religious on programming languages like Java, as it forces theory upon the student.  Thus introductory material exposes students to many advanced concepts that might be way overwhelming.  Before when I was taking programming courses, I went from simple languages like BASIC and Pascal, to C/C++ and then Java, and now C#.  I didn't start my beginning courses with an language that forces good object-oriented design.  That's way too much material for a beginning student.

    Over the years, students have asked me, what they should take to learn programming, or how can they learn it on their own.  So I wanted to detail the gradual step or stages to develop programming skills.
    1. Introduction Course: Branching and Looping, Variables, Arrays, Sub-routines (functions), Scope
    2. Intermediate Course: Modular Programming Design (functional decomposition, abstraction), Pointers or References, Binary Operators, Algorithms
    3. Data Structures: Link Lists, Stacks, Queues, Trees, Graphs, etc.
    4. Object Oriented Programming
    5. Object Oriented Design, Design Patterns
    6. Advanced Topics
      1. Real-Time Programming
      2. Network Programing
      3. Remoting
      4. Reflection
      5. Serialization
      6. Concurrency and Threading
      7. Database
      8. Component Based
    There will be many that argue you are required to know a lot of mathematics, but I really disagree, Mathematics is not needed to become a programmer.  But to go into really high paid jobs and management, where one is an architect, Math becomes required.  To be an implementer of new things, Math is needed, but to use existing libraries, you do not need the years of Math required for a computer science degree.   And with such a dearth in the market, there's always a strong need for programmers.
    For Information Technology, at most one needs Steps 1-4, and at minimum one needs steps 1-2.  Most all IT jobs require some sort of scripting, unless you are a button pushing Windows tech.  The most high paid system administrators are ones that can do scripting and automation, with Perl and Python becoming the most popular languages.

    Thursday, February 18, 2010

    Embarking on New Technology Journey

    After a few years in Korea, I became technology starved, so I decided to pursue some Information Systems courses at SFSU, and a ton of technology courses at CCSF.  This blog will just track my pursuits in information technology and information systems, and related technology and business interests.  I will cover a whole range of research in certifications, programming, security, and stuff.  As I learn new things, I hope that others can learn as well, maybe contribute some thoughts...