Personality Profiles
It is interesting noting how people behave in general and what they think of themselves as well as their ideas about other people. A person can be described as outgoing or perhaps even reserved though I think extrovert and introvert respectively sounds more appropriate in describing such types of character. It goes without saying that it is not a bad thing to be an extrovert or an introvert for that matter but it is imperative that each person understand himself/herself sufficiently enough to identify which kind of profile fits his/her particular disposition.
The following is a description of Introverted iNtuitive Thinking Judging (INTJ) kind of a personality profile. It is from typelogic.com and credited to Marina Margaret Heiss:
To outsiders, INTJs may appear to project an aura of “definiteness”, of self-confidence. This self-confidence, sometimes mistaken for simple arrogance by the less decisive, is actually of a very specific rather than a general nature; its source lies in the specialized knowledge systems that most INTJs start building at an early age. When it comes to their own areas of expertise — and INTJs can have several — they will be able to tell you almost immediately whether or not they can help you, and if so, how. INTJs know what they know, and perhaps still more importantly, they know what they don’t know.
INTJs are perfectionists, with a seemingly endless capacity for improving upon anything that takes their interest. What prevents them from becoming chronically bogged down in this pursuit of perfection is the pragmatism so characteristic of the type: INTJs apply (often ruthlessly) the criterion “Does it work?” to everything from their own research efforts to the prevailing social norms. This in turn produces an unusual independence of mind, freeing the INTJ from the constraints of authority, convention, or sentiment for its own sake.
INTJs are known as the “Systems Builders” of the types, perhaps in part because they possess the unusual trait combination of imagination and reliability. Whatever system an INTJ happens to be working on is for them the equivalent of a moral cause to an INFJ; both perfectionism and disregard for authority may come into play, as INTJs can be unsparing of both themselves and the others on the project. Anyone considered to be “slacking,” including superiors, will lose their respect — and will generally be made aware of this; INTJs have also been known to take it upon themselves to implement critical decisions without consulting their supervisors or co-workers. On the other hand, they do tend to be scrupulous and even-handed about recognizing the individual contributions that have gone into a project, and have a gift for seizing opportunities which others might not even notice.
In the broadest terms, what INTJs “do” tends to be what they “know”. Typical INTJ career choices are in the sciences and engineering, but they can be found wherever a combination of intellect and incisiveness are required (e.g., law, some areas of academia). INTJs can rise to management positions when they are willing to invest time in marketing their abilities as well as enhancing them, and (whether for the sake of ambition or the desire for privacy) many also find it useful to learn to simulate some degree of surface conformism in order to mask their inherent unconventionality.
Personal relationships, particularly romantic ones, can be the INTJ’s Achilles heel. While they are capable of caring deeply for others (usually a select few), and are willing to spend a great deal of time and effort on a relationship, the knowledge and self-confidence that make them so successful in other areas can suddenly abandon or mislead them in interpersonal situations.
This happens in part because many INTJs do not readily grasp the social rituals; for instance, they tend to have little patience and less understanding of such things as small talk and flirtation (which most types consider half the fun of a relationship). To complicate matters, INTJs are usually extremely private people, and can often be naturally impassive as well, which makes them easy to misread and misunderstand. Perhaps the most fundamental problem, however, is that INTJs really want people to make sense.
This sometimes results in a peculiar naivete’, paralleling that of many Fs — only instead of expecting inexhaustible affection and empathy from a romantic relationship, the INTJ will expect inexhaustible reasonability and directness.
Probably the strongest INTJ assets in the interpersonal area are their intuitive abilities and their willingness to “work at” a relationship. Although as Ts they do not always have the kind of natural empathy that many Fs do, the Intuitive function can often act as a good substitute by synthesizing the probable meanings behind such things as tone of voice, turn of phrase, and facial expression. This ability can then be honed and directed by consistent, repeated efforts to understand and support those they care about, and those relationships which ultimately do become established with an INTJ tend to be characterized by their robustness, stability, and good communications.
Finally, a Hands on with "Orcas"
Microsoft is working on its next release of Visual Studio, a tool that has no comparison in the industry to date. Well, I have a reputation for not being pro Microsoft but the way I see it, I just tell it like it is. These days, I think the Redmondians are getting their act together which terrifies me at some level as well as nudges me to give them the respect that they so rightly deserve. Terrifies me because these are the same people who produced versions of Windows pre-Windows XP SP2; SP2 is a decent product but the architectural and engineering work it is running on is fragile in my opinion which means that not much innovations can be added to it without breaking a lot of things (which could be a good thing but hey that’s a story for another day). With Windows Vista, I believe they are moving in the right direction with UAC and all.
These improvements are not only limited to the OS but run the gamut of Microsoft’s offering. The .NET Framework has been in existence for quite a bit and initially it was just doing what Java had been doing for a while. Version 2.0 of .NET framework added additional improvements and then what’s popularly called version 3.0 added a slew of additional extensions (or libraries you may called them) that deal with communication (Windows Communication Foundation, formerly Indigo), workflow (Windows Workflow Foundation) and presentation (Windows Presentation Foundation, formerly Avalon). All these additional extensions run on top of .Net framework version 2.0 which has led to questions about bumping up the version number of the framework. Minor version number increases would have been enough to communicate the knowledge that there are new stuff but the base of framework has not changed. When Microsoft Visual Studio Code name “Orcas” makes it to the stores, it will come out with .Net framework version 3.5.
This release of Visual Studio will be an improvement on Visual Studio 2005 which I currently use; comparing the beta to the current offering is not fair but I like the improvements in the web designer and the support for CSS has been greatly improved over the current production version (as of this writing) of Visual Studio. Much of the improvements with Visual Studio Code name “Orcas” are under the hood and come courtesy of Microsoft project such as LINQ (Language Integrated Query).
I have heard about LINQ for a while but it is only recently that I have spent time looking into its theoretical foundation and I must say, I like what I found out. Basically LINQ aims to bring data manipulation semantics into general purpose programming languages like C# and Visual Basic. Such a statement sounds deceptively simple by itself without appreciating the current state of affairs in data manipulation when working with general purpose programming languages. The most common data stores in the industry are typically rational databases and as such most programming language code are intermingled with strings that represent SQL statements that are then sent to the database for execution and the results are returned to the application which then manipulates it further (for presentation for example). The following are some of the problems that arise from the aforementioned scenario:
- Tools are not aware of data manipulation statements (represented as strings in the programming language) – this means that the tools cannot provide additional support at development time.
- The programming language treats the data manipulation statements as string which, as string data types, are limited to the methods and capabilities of the string class. This means that any further processing of data within the context of the programming language is likely to be complex.
- Perhaps of greater significance is the paradigm mismatch between the programming languages (more likely to be OOPL) and the data store (relational databases for example); this rapidly turns into a battle to marry OO paradigm to the relational paradigm.
There has been numerous attempts to solve the paradigm mismatch between the OO and relational realms; Object/Relational Mapping (ORM) techniques aim to solve this problem; ORM basically allows you to define the mappings between your objects and the tables to which they persist their states. I have had experience with Hibernate and this particular ORM technology has its own query language which is used in retrieving objects from the relational data store and the ORM layer takes care of the mapping between objects and tables. One of the more fascinating thing I discovered with Hibernate was the ability to navigation relation between various objects: for example a Customer has a collection of orders and an order as a collection of order items. This was something revolution at the time but LINQ brings into the equation the ability to establish and manipulate such associations over collections as native constructs in the programming language.
The people behind the LINQ project has done a commendable job; I have been looking for implementation of similar ideas in other places but I have not found evidence of it thus far. The LINQ team has taken a different approach to solving a problem that has taken root in the industry and perhaps has accounted for the complicated nature of programming. LINQ leverage functional programming constructs added to the C# and Visual Basic.NET languages. I was just reading an introductory text to functional programming in Haskel, just to get a clue about functional programming and after reading that book, I saw the possibilities and advantages that functional programming present. As a point of digression, I like understanding things from my perspective (I suppose that’s what most people do) but I like to get a feel of things so that I can create new perspective of the same situation (these “new” perspectives do not have to be original but more often than not they come to be different than what most people are used to). With regard to functional programming, I am on an exploration path; I am looking into understanding the theory behind it as well as increase my knowledge to better take advantage of functional programming. It has occurred to me that most of the programming languages that I can work with are the same: they are imperative programming languages that fundamentally deal with the state of a program. On the other hand there are other kinds of programming languages such as the functional types and even more curious ones like Python that seemingly straddle the imperative and functional domains.
This is an introductory post which I hope to follow with a tutorial which I used to get my first feel of the power of LINQ. It is a small app that I have been thinking about. Yes, perhaps a more in depth look at LINQ would be more appropriate. Stay tuned and check back.
Microsoft & Lenovo Windows Live pact
Microsoft’s intention towards Google is not a secret and yesterday’s announcement that Microsoft’s Windows Live software will be pre-installed on Lenovo computers is just a development of this rivalry. However this deal sounds like something Microsoft would do; this is how they got to their current dominance of the operating system – getting OEMs to install Windows on PCs.
However the competition for services may not be easily captured, especially taking into account that Microsoft (as yet) does not have mind share in this market; Google has a verb (google) that is synonymous with searching the Internet (and search generally) and that is what they are leveraging in most of their other services. It is true that Microsoft will also leverage its OS dominance but changing the service that one uses on the internet is a matter of downloading a few megabytes (sometimes kilobytes) of a toolbar and you are off. Microsoft still wants to undercut the final consumer of the service or product by ensuring that they are in the consumer’s face in a such a manner as to negate the need to look at other alternatives available in the market. This is of course reminiscent of the browser wars and how Internet Explorer became the dominant product in that market.
While it is a sound strategy to stay with tried and tested practices, Microsoft may need to remember that we are in an era where technology adoption is increasingly driven by consumers as is the case with blogging, instant messaging amongst others. Search is equally a personal experience which will be dictated by what one has become accustomed to and not necessarily what one finds installed and/or selected by default on the computer.
Information Security: Principles and Practice
I started reading a book about information security. I like gathering informaiton generally but have never had the patience to go through a technical book or documentation for that matter cover to cover. It is a good habit so I have embarked on cultivating a culture of reading a book cover to cover. Of course the idea is not to read like I am reading for an exam but instead read for the enjoyment of reading.
Information security is a great topic to look at from a developers perspective. Hmm, I think the contents of this book will become relevant to my studies later on. Well, I hope I will remember most of what I read this time around to be useful in an academic setting later on.
I have had some interest in authentication and authorization with a view towards implementing a pluggable generic framework for authentication and authorization. I am hoping this book will give a good foundation from which to start the design and modeling process for such a framework. I have come across a number of good authentication and authorization libraries on the web but I think the process of attempting to implement a framework will broaden my understanding of the topic generally.
I am not far along with the book to warrant any discourse on the topic of information security but so far I am liking the way the author eases into the whole topic.
The book is called: Information Security: Principles and Practices by Mark Stamp.
File Management
File Systems are an integral part of any modern operating system with a pattern whereby most proprietary operating system support a single file system while Linux (the poster child of open source) supports a number of file systems. The role of the file system as the operating systems way of storing and organizing data cannot be disputed. However the increased capacity of storage media such as the hard disk and flash based media requires additional capabilities that perhaps build on the file system.
Anyone who keeps a significant and varied amount of data on a recently purchased computer would be interested in searching his locally stored data using the same approach that is used by internet search engines like Google. There are a number of desktop search products available and Google offers the Google Desktop that indexes data on a hard disk and allow subsequent searching. My experience with Google Desktop has been good though upgrading between versions has caused some problems in the past. I have heard complains of how much of a resource hog it is but that is not something that I can say I have experience; the initial indexing will take sometime that is why it would take a lot of resources.
File Systems & Desktop Search
File systems need to provide extensive meta data about the files that they store and more importantly perhaps include additional services that will analyze and group these meta data in a manner that makes sense to a user. For example, it should be possible and easy to group documents that concern a particular company or business proposal into a single unit regardless of whether these files are Word documents, spreadsheets or PDF documents. This is important for the future usability of computer since hard disk capacity has been increasing and soon enough we will have 1 terabyte hard disks which represents a lot of information to keep in folders. Microsoft’s ambitious WinFS was rumoured to offer such capabilities but that particular “pillar” of Windows Vista has been removed and some of its technologies have been integrated into other Microsoft projects.
File Systems
Further Reading, more
Interesting Concepts (will be expounded as time passes)
Extent: this is a contigous area of storage allocated for the storage of a file.
Journaling:
B+tree Data Structure:
March 17, 2007 Posted by imma | Lecture Comments, Reading | | No Comments Yet