Archive for category Reading
Some time back I stumbled upon the sweet revelation that written sci-fi (more specifically novels) is much more entertaining than your typical TV shows and/or movies of the same genre. Don’t get me wrong, those still remain my favourite pastimes when I need to unwind. I must admit that I have not been very diligent in my readings lately (cue the appropriate excuses …) though I have at least taken a look at some of the luminaries in the genre including Isaac Asimov and more modern authors such as Iain M. Banks. Banks’ Culture series is classified as a space opera (I know, never thought I would be into anything soap) that presents some pretty intriguing concepts, immersed in wide spanning geographic (in any case galactic) and time scales. I think the series is popular enough that checking out its page on Wikipedia would give you a detailed overview about the fictional society itself and what goes into making this fictional universe.
I have always emphasised that sci-fi should be looked at beyond the fancy technologies and more as a commentary on human nature. The Culture is a symbiotic human/machine civilization that is more an idea than anything concrete that you can point at. For example, most modern states and indeed our current civilization can point to global treaties and written laws and constitutions and all the documents, mores and norms that define our existence. For the Culture though, they don’t have anything that resembles a law – the Wikipedia entry refers to this fictional civilization as a socialist, utopian anarchy.
In our normal lives we can’t envision a society without laws as this essentially means an unprecedented level of violence and chaos but here is someone presenting an idea that explore the possibility of anarchic society that is largely a utopia. As a concept under consideration, The Culture is more of an idea that is constantly maintained at a stable state that its various citizens want and/or can agree to bring about; it is certainly a deliberate effort to more forcefully create that which you believe to be right – challenging the very notion of what reality is. The AIs in this fictional scenario essentially enables everything that the Culture is and they themselves are irrevocably part of the same loose principles and norms that makes up the Culture. As story telling devices, the Minds present that crucial unimaginably complex means to neatly (albeit unsatisfactorily) wrap up a story but going beyond that and looking in-universe and you may come to the realization that the very post scarcity nature of the Culture creates a new set of problems and many of which are conveniently side-stepped by the fact that the very backbone of the Culture (the Minds) are benevolent and deeply uninterested in oppressing their creators (at least the creators of their first generation) and their subsequent progenies.
Life in the Culture is unbelievably dull and less than exciting – at least for those who want more than indulging every whim you can conjure up in an environment in which all physical hazards can be managed and calibrated to your particular liking; interestingly enough, the Culture is aware of this and hence provide those determined enough to do more to live a lasting mark an outlet through contact with other civilization. The Culture as a civilization runs an organization that handles its interactions with other civilizations as well as engage in any military actions if necessary; within contact there is Special Circumstances which is the civilization’s military intelligence and espionage and counter espionage organizations. The whole scenario is one in which the potential of true freedom of choice is mostly possible: you can choose to live your life in whatever fashion you want and there is no one accountable for it other than yourself. I can’t help get the feeling that these are just diversions in the same vein as you have solved all the conceivable problems that you have in life and the next thing remaining is to spread your particular world view to everybody else. The biological citizens of the Culture need such escapes but ultimately I would expect that the core group of Culture Minds that run the entire racket would know that they are just watching a bunch of unpredictable variables mixing it up in slow but hopefully, eventually interesting combination.
Examining any coverage about freedom, what you will mostly overlook is that nobody ever mentions the idea that freedom is not absolute; a truly free individual can equally choose not to be free as that choice is something that has to be afforded to him or her by virtue of his/her freedom. It is a concept that many people would dismiss outright for it sits at odd with their so very human nature but it may point to the notion that we tend to think of freedom as an end in and of itself. To anyone who has spent some thought on the subject, it becomes eminently obvious that the proper end of freedom is happiness and that in itself means that the choice to forgo freedom in order to achieve happiness is just as valid as those who fight to be free of their shackles.
However, take the notion of freedom in the context of a hypothetical post-scarcity scenario, then the interesting question that begs an answer is: does freedom fought for and struggled for leads to greater happiness compared to a freedom that you are given (for lack of a better word)? Look at it in another way: does the fact that you are born rich and hence suffer hunger out of choice make your choice less important compared to someone who does not have such degree of choice? By that analogy then you may postulate the notion that given riches (and the freedom that they afford), you may not end up being happy after all. Don’t get me wrong: not having choice is not a guarantee that you will be happy either as the very lack of choice degrades your very dignity but with an ever more globalized world, it is quite possible to go from rags to riches and then you have the riches problem all over again. Absolute freedom as a means to happiness remains a fallacy.
As more studies into the intersection of sociology, psychology and neuroscience continue, it becomes interesting to ask a question like: is poverty a social disease? I don’t mean it in the material sense of the word but more in a sense that our societal structures encourages abhorrent behaviour in ourselves and with very little chance of actually realizing that there is a much better, more satisfying scope to living life and looking at life. I find the economic concept of positional good quite intriguing in exploring poverty as a social disease; with positional good – you value something because others don’t have it and this applies to luxury goods mostly though I have a hard time figuring out where this line gets drawn when you deal with basic commodities. Our economic frameworks firmly follow the rules of supply and demand and in some sectors it actually becomes necessary to artificially manage supply and demand in order to ensure healthy profits.
Earning money is not an evil in and of itself (I am yet to figure out a convincing way in which a post-scarcity paradigm would emerge from our current economic model but that is a story for another day) but manipulating the system and the rules to up your profit margins is fundamentally wrong on so many levels. The blind pursuit of profits have always made me wonder what drives a true entrepreneur; no doubt, the returns from the business is a key motivator but that is not a sustainable motive as you will soon become encumbered in ways that you will find both limiting and demoralizing to say the least.
List any large corporation that has gained prominence through ruthless attention to its margins and show me the number of tussles they have had with the legal system and/or regulators. It is easy to flippantly conclude that success attracts enemies but please go beyond the enemies’ attempts to get their pound of flesh and you will realize that continued exposure to these fights will at some point limit the ability of the company to rigorously pursue its purpose for being. If this purpose is to make money then there is the unfortunate side-effect that the dominant company in the sector or industry will snap up all and/or the best resources available in the industry/sector and thus becomes more of an inhibitor to true progress through farther transformation and improvement of people’s lives. Money is power and that power can be used to effectively rewrite the laws and/or cause the legal system to grind to a halt as business proceeds but these fights do take their toll on the company in the long run.
Let me circle back to the fictional Culture universe. What underpins Banks’ fiction in the context of Culture is that human spirit, ingenuity, restlessness, inventiveness, curiosity, etc. are largely preserved albeit sometimes taken so far as to be given their own sentience and as such effectively become a moral agent that must fulfil its purpose for being. Too far fetch? Think of a habitat – a house that is sentient and/or damn near sentience and fully aware that it collapsing is definitely against is reason for being and not being habitable is equally an abhorrent outcome to contemplate. The upside of such a contrived analogy is that the house would ensure that everything possible is done to ensure that it is just as worthy of being a house – puts it beyond any casual corruption and definitely any petty thieving (arsonist, burglars – I am looking at you). Of course a determined individual and/or an army would easily bring it down so that should also act as an incentive to stick to the business of being a house (a good little house).
Post-scarcity/Singularity/Heaven can’t come if we can’t relinquish our grasp on things that need not be within our control. We are becoming too powerful in our ability without the necessary fortitude to realize that this same power is easily corrupting us. We need a better way to put away the best of what we are as rational beings and worry about things that we have not figured out yet. The pertinent question remains: what is the best way to put our collective well being beyond our corruption? This is not a new question and since the beginning of time, we have struggled with this question. God exists as the most perfect embodiment of the best of what we are and through the ages people have believed in a supreme being who takes a benevolent interest in the affairs of mere mortals.
Overtime as our knowledge and understanding improved, these believes have shifted subtly but their essence remain the same. We live in a technological age where things are just beginning – for the last 50 years or so all our electronics advances have largely been about replicating our physical, old world. Want an example: you still call the collection of related information on your computer a file and you put them into folders/directories (file cabinets) and the list continues. We have only realized that these electronics can crunch big numbers and serve as vast repositories of data. Replicating our physical and somewhat old ways of looking at the world is a necessary step and it is my hope that in that process we have secured what is good about the past because our increased capabilities are likely to be frightening without the proper foundation. All the improvements in computer hardware and software as well as communication technologies has led some futurist to consider the possibility that we may end up creating the means necessary to put the best of ourselves beyond corruption and the vagaries of our conflicted nature. Most of the said futurist refer to this as the singularity; there is enough literature on the singularity online both in support of and those who are convinced that we are on the verge of creating the famed SkyNet.
My take? I don’t think the singularity is going to be a good thing or a bad thing when and if it happens. The probability that it will be completely sentient at the time of emergence is doubtful at best because that would suggest a trigger event that will make it all come together. At the moment, it is hard to figure out what that is but a possibility exists that sentience will be more an emergent characteristic of the singularity and at least for sometime it will become a true companion to human beings who can afford to use them to their desired ends. This raises the possibility that both good and evil singularities will emerge as these will learn from their makers the various demeanour and tone that they will believe. The scenario presents the most plausible ways to teach and transfer human social constructs like trust and group dynamics; increased use of technologies will enhance (hopefully) our social interactions and in the process also yield hard data which can be analysed and codified into a general framework of human behaviour.
Based on this model then it seems we are just transferring our problems to yet another realm because if it is entirely possible to end up with good and bad singularities, then these are likely to wage wars against each other. So here we go, civil wars wages through AI proxies – but more interesting I think this will give a new level of drama to personal feuds as commanding a horde of these singularities towards your particular goal would be most plausible. Oh, don’t forget that these will quickly come under some sort of legislation which means either you create Judge Dread type singularities or if the law remains as arcane (with regard to the internet specifically) as it is at the moment, then it is just a matter of the law being a polite suggestion without any real chances at enforcements (of course except for instances in which your opponents want to manoeuvre thusly.
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.
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.
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.
- FAT: this is perhaps the most widely used and simplest file systems of all. It was created by Microsoft and used in consumer version of Windows up to Windows Me. Most PC OSes support FAT which makes it the common demoniator for such tasks as data sharing across disparate operating system platforms as well as for use in removable media such as floppy disks or flash disks. There are three version of FAT (FAT12, FAT16 and FAT32) with support for varying sizes of disks and file, long file names. The file system uses File Allocation Tables to keep track of which areas of the disks have data stored in them, which areas are free and which are potentially unusable for data storage. FAT file system tends to fragment as it scatters data across the disk; this reduces the performance of the file system and makes defragmentation (on a regularly basis) necessary. FAT32 supports a maximum volume size of 8 TB (terabyte).
- NTFS (New Technology File System): this is the file system that is used in newer versions of Microsoft’s Windows operating system; all versions of Windows based on the NT kernel (Windows NT, Windows 2000, Windows XP, Windows Server 2003 and Windows Vista) use NTFS as the primary file system though this may not be the case with Home editions of the some of the OS releases or perhaps the basic editions (where applicable). NTFS include features such as support for metadata (file attributes) and use of advanced data structures to improve performance, reliability and disk utilization. NTFS includes support for Access Control Lists and file system journaling which enables the OS to recover from potentially damaging events like power blackouts that threaten the integrity of the file system.
- Ext3 (the third extended file system): is an open source file ssytem commonly used by default in most Linux distributions. It was created by Stephen Tweedie and includes journaling capabilities. It is an extension of ext2; it adds journaling and tree based directory indices over ext2. Because of its close relationship with ext2, it is easy to upgrade to ext3 from ext2 and most of the ext2 tools will continue to work on ext3. However this close link to ext2 is a disadvantage because ext3 lacks features that are available in most modern files systems such as dynamic allocation of i-nodes. Ext3 lacks and online defragmentation tool …
Interesting Concepts (will be expounded as time passes)
Extent: this is a contigous area of storage allocated for the storage of a file.
B+tree Data Structure:
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.
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.