What is Cross Site Scripting? Cross Site Scripting or XSS is an attack on a website in which an attacker sends text based attack scripts which are executed within the browser. Apparently about 80% of all security vulnerabilities were as of the result of XSS. link This means that they are a special form of a code injection attack.
What is Cross Site Scripting? Cross Site Scripting or XSS is an attack on a website in which an attacker sends text based attack scripts which are executed within the browser. Apparently about 80% of all security vulnerabilities were as of the result of XSS. link This means that they are a special form of a code injection attack.
I was a little unsure of how easy it would be to get working on my Kubuntu, but it turned out to be a breaze (as usual with most things Linux/ Ubuntu/ Kubuntu). I just plugged it in, created a new "Mobile Broadband" connection, entered "*99#" in the "Number" field and "internet" into the "APN" field, selected "Connect Automatically" and I was done. No need to install any Cell C software to use it... Just one more reason to love Linux!
For other non Cell C readers of this post - I found out the settings by running the Cell C software which comes on the modem in Crossover and could see the settings there. So hopefully, you can determine any required settings for other providers.
Edit: I've reinstalled Ubuntu 10.10 and when setting up the modem, was asked for a password. Took me a little while to work it out - turned out to be 0000 for what it's worth....
I've had quite a few questions as to the speed of the Cell C network. So here's a screen shot of a speed test. I've had better connections (up to 14 Mbs download), but this seems to be a good "normal" connection. The connection speed is very dependent on the location though, so check out coverage in your area first.
I took the plunge... After working solely on Ubuntu for over a year, I decided to install the latest Kubuntu on my main laptop. I've never really worked with KDE much apart from trying it out briefly here and there but never ended up sticking with it as it was always installed on a secondary machine. So, why did I decide to swap? I've have had a few difficulties with KDE before and it seemed a little buggy, but I've become pretty comfortable with Linux, so I was confident that I can sort out anything thrown at me. Maybe I was just too comfortable with Gnome to bother swapping and readjusting to a new environment but I've always been envious of the visual look of KDE... It's probably a bit unfair to call KDE "buggy" - I've always run it in a VM or on an old laptop which hardly had enough power, so this time around, I'm doing it properly!
If games are one of the big barriers to change, then I wonder what the effect of many gamers moving to consoles will have on the PC OS market share. And with the netbooks/ iPads and Google Chrome OS, which can't really run
the hardcore games, maybe even more users will be moving to consoles.
This should surely have some sort of negative effect on the PC OS's that are "locking" users in based on games availability.
This basically allows a user to determine the Machine Key used to encrypt the cookie on any site. This is apparently 100% reliable and can be used for any site within 30 - 50 minutes. This would allow a user to create spoofed authentication cookies to assign administrator privileges.
The solution? Use one of the other Encryption mechanisms eg. Triple DES.
Currently there are "normal" phones that can perform about 8 MFLOPS (Million Floating Point Operations per Second)
To put this into perspective, Up till the time of the first moon landing in 1969, the fastest supercomputer in the world could run at 3 MFLOPS. http://en.wikipedia.org/wiki/Supercomputer
So, you probably have more power in your pocket than was used in launching Apollo 11...
"Today is the day that the Windows Phone team has been driving towards,
and we’re very excited to say that we’ve reached the biggest milestone
for our internal team – the release to manufacturing (RTM) of Windows
Phone 7! While the final integration of Windows Phone 7 with our
partners’ hardware, software, and networks is underway, the work of our
internal engineering team is largely complete."
link to source
Well, back in the day, this was largely what the IT world looked like - There were servers and dumb terminals which had a network connection and little else. Everything was executed, stored and processed on the server. So what happened? PC became more powerful and useful as standalone devices and so we ended up with disconnected home computers, being able to play video games movies etc. So, it seems as though we're moving back to the "old way"... OK, this time round is a little different as many devices have a 24/7 internet connection and therefore network connectivity is less of an issue, but there are still many applications that don't lend themselves to fully online operating system such as 3D graphical games. Ok, once again, there are exceptions to this rule as I've seen Quake running over the net. But just because it can be done, it doesn't mean that it's ideal. There are plenty of other classes of software that doesn't lend itself to this either.
There wouldn't be the huge amounts of money pumped into this if it wasn't a possibility... Well, I believe it's going to be a mixed world. There will be numerous online apps which we will (and already do) use, but there will always be a need for the "normal" desktop computer. So... will the online operating system become the defacto standard...? I doubt it.
Apparently Gnome shell won't be compatible with Compiz. I.E. you can't run both at the same time - So it's a question of which one? I've used it for a while now and not sure i like it... It's better than the "standard" interface (minus compiz), but all in all, I'd rather use Compiz. Not considering any technical reasons such as speed, memory use etc. the reason is because a few of my favourite features wont be available, "Wobbly windows", Desktop Cube, Expo, Ring Switcher etc. So... If the new Ubuntu/ Gnome does ship with it, for now I'd rather change back to Compiz. Fortunately it's should be easy enough. though. And once again... the beauty of Linux - use whatever you like.
"The number of recent Linux-oriented initiatives in the mobile industry attests to the fact that Linux will be a key technology in the next-generation of netbooks, media tablets, and mobile Internet devices (MIDs). Led by both Google’s Chrome OS and Google’s Android, the growth of Linux-enabled mobile devices will outstrip the growth of total mobile devices, and will comprise 62% of the operating systems shipping in all mobile devices by 2015." http://www.abiresearch.com/research/1005531-Linux+for+Mobile+Devices
This is a very interesting forecast which has spin-off effects for the rest of the Linux world. If a user is running "Linux" on their cellphone, there's firstly a lot more awareness of Linux based desktop operating systems and secondly, a greater chance that they'd be prepared to try a Linux flavour on their desktop. Finally, if Linux desktop usage achieves the required critical mass, there will be a much larger availibility of applications for Linux (both open source as well as proprietary). With the widespread adoption of the Linux kernel on various devices, contributions to the kernel are coming from many different sources. It's no longer only work done by a few "hackers" sitting at home - it's now really big corporates. With many mobile operating systems including Google Android running on a slight modification of the standard Linux kernels, I'm sure there will upstream contributions, ensuring an even better OS for mobile, desktop and server Linux OS's. With so many role players (and big ones at that), I can't fail to see how this wont end up being the dominant operating system over all spheres.
The future I see for the IT world of the future is one of a Linux kernel for most devices and a mix of open source and proprietary software running on top. Standards are becoming more and more important in every area which must be "owned" by everyone. Until now many standards have been defined in terms of protocols, but I see the actual operating system kernel as a potential "standard". The writing is pretty much on the wall for the Microsoft Mobile OS, unless Windows Phone 7 can change this. In the same way that Mac's were one of the leading players, their market share has dropped off significantly over the past 20 years to somewhere between 5% and 6%. The long time use of the PowerPC processor has been eventually dropped for the more widely used Intel based processors. One advantage for Microsoft at this point, is the interoperability of their software and devices which they have leveraged very effectively in the past (see the history of Word/Office, Internet Explorer etc.). Users are probably less likely to want to change devices unless it is supported by their laptop, XBox, tablet PC and coffee machine. Unless Windows Phone 7 is out of this world, I feel that it will just be a matter of time before Microsoft will have to concede the mobile market, however I doubt that it would be a sudden switch over - change takes time.
As a wild question, would Microsoft ever move over to Linux kernel if they realised that they were in a loosing battle???
Firstly, I'll concerntrate on the changes between 9.10 and then later for those upgrading from the previous LTS.
Pressing the power button had me booting into Ubuntu on an "average" machine in a timed 16 seconds. (with the obligatory disclaimer, "actual results may vary.") So far so good, very impressive... Once booted, There's no longer an Orange/brown theme - it's now a purple kinda hue. Not my favourite as mentioned before, but not a big deal. Three clicks and it's gone.
At some point there had been rumors of Gnome 3 possibly being in 10.04. Not so - It's currently still using the Gnome 2.30 interface. In other words, it doesn't look massively different from before. It's just slightly more refined. There are two more themes introduced called Ambiance and Radiance. They're OK, but I normally end up setting my own anyway. Interestingly, the close/ minimise/ maximise buttons have moved to the left hand side of the title bar à la Mac style. If that doesn't suite you (and personally, I'm used to it on the right) it can be changed however.
One of the bigger changes in terms of applications/functions is the social networking side. The "Me Menu" integrates with Google Talk, AIM, Yahoo Messenger and ICQ, and allows users to broadcast to services like Facebook and Twitter via the built-in Empathy chat client and Gwibber microblogging client. A one stop shop for all social accounts could come in handy for many users and it's probably a big plus. There are also a few changes to applications - some added and Gimp removed. Interesting...
On the technical side, there have been improvements to hardware support, kernel etc, but overall it's not a massive change from 9.10. But as mentioned before, this being an LTS version, canonical probably doesn't want to introduce massive changes as they'd have to support it for a while.
So... The million $$$ question is... is it worth changing to the new 10.04? About two month's after giving it a go on another machine, I still haven't swapped from 9.10 to 10.04 on my primary work machine as yet. I found one or two small problems with it and the additional social functionality wasn't quite enough to warrant an upgrade to the new version. That said however, if you're new to Ubuntu/ Linux, it's definitely a brilliant operating system.
On my first attemp to install it, it looked like it wasn't supported on Linux. After a little looking around, I realised that it was just the latest version which wasn't supported, which is what the Firefox "Add-ons" wizard finds. (Windows works via the normal plugin download/install method)
If you're running Linux (or Mac), use the following link to install the last supported version of the plugin for your OS:
It worked pretty well as an image viewer for my local images, except that I had to start my browser, click on the Cooliris button and then change to a full screen view - about 2 clicks more that I should have to. Ok... I know, I'm being a bit difficult here, but I was wondering if I could use this plugin without it being obvious that it's running in a browser.
So... The following "hack" should be possible on any platform which will turn your plugin into an impressive image viewer. Firstly create new Firefox profile for this plugin to use.
On Windows, create a shortcut to Firefox (or execute in command prompt) and add the -P switch. IE. Execute "~/firefox installation path/ firefox.exe -P"
On Linux, simply type "firefox -P" in a Terminal.
This will launch a profile selection dialogue box. Create a new profile and name it something E.g. "Cooliris". Launch Firefox with the new profile created. You'll see that none of your bookmarks, installed plugins etc. are listed and that's because it's as if it's a "fresh" install and totally separate from your default profile.
Using the Tools>>Add Ons wizard download and install the "Full Screen 3.4" plugin which will allow us to start up in full screen mode, without any tool bars or tabs showing. Once that is finished install the Cooliris plugin for your respective machine as described above. You should be able to click on the Icon to the right of the Google search bar to give it a go. Now, Set the "Full Screen 3.4" preferences to open full screen and hide tabs by clicking on Tools>>Add Ons, selecting, "Extensions" tab, "Full Screen 3.4" and then "Preferences". Click on the Cooliris button to launch it and set the URL to your homepage in Firefox preferences/properties.
Now that we've created a new profile specifically for using Cooliris, now you have to create a shortcut to use that specific profile.
In Linux, create a shortcut to execute "firefox -P Cooliris". (Cooliris being the name of your profile created.)
In windows, create a shortcut to "~/firefox installation path/ firefox.exe -P Cooliris".
Clicking on this link should directly open the plugin in full screen mode, while using your standard Firefox shortcut will work as normal.
As a sidenote, unfortunately, there is no exit button, so you either have to press "F11" and then click on exit or "Alt+F4", but it's not really a big deal.
Note, it seems as though you can't run two different instances of Firefox at the same time with different profiles. That is, you'll have to close one and open the other view.
But, forget the theme - that can easily be changed. By far the most important things happen under the skin. There's some interesting new apps and background improvements such as faster boot times, which is already very impressive and improved support for video drivers. A very interesting development is the inclusion of an online music store which integrates with the free 2Gb Ubuntu One online storage which all Ubuntu users already have. Then there is the online social networking integration into the OS which sounds very interesting. E.g. Twitter, identi.ca, Facebook, and others via the new "MeMenu".
I haven't installed it as yet on a machine as yet, but can't wait to get hold of it and try it out. This is one of my biggest problems with Ubuntu - As soon as a new release comes out, I have to get it immediately! I'll report back sometime soon.
This got me thinking a little... Well, what if the system looked and for the most part, functioned exactly the same as some given version of windows? This would negate the argument of which OS looked better as they would both be virtually exactly the same and to some degree which is "easier" to use. The look of the OS to some people is important. Admittedly, I do care that it looks "right" even though this isn't the only reason for my use of Ubuntu. Up to now, I'd been pretty much of the "Linux isn't Windows and therefore shouldn't look like it" opinion, but I started looking at how to transform my OS into a Windows clone, just to see how close I could get it. With a quick search, I found a set of scripts that made Ubuntu look virtually exactly the same. I even ran a "test" against some chosen subjects, showing them my new "Windows 7"... As they all know me as being a total Linux convert, they looked a little suspiciously at my screen and took a few moments to realise that it wasn't Windows 7. The give-away was generally the application names in the menu. But, nonetheless it was kinda hard to tell. Ok, I admit there are still differences that a user would have to get used to, but nothing rocket science.
So, if my Ubuntu looks virtually exactly the same as Windows 7, is Windows "easier" to use?
Ok, so now that that has been established, I believe that the world is going to be moving in the "OS agnostic" direction over the next few years. What I find it interesting is the need for companies to reposition themselves over the next few years in order to remain current. One of the "hallmarks" of the 70's computing era was that most computers were "dumb terminals"; all the processing happened server-side. And today, we are slowly moving back to that in certain instances. For many people, much of their computer-based work happens through the browser and they don't really need that many client-side applications. Even the office suite which has been the staple of most computer needs over the past two decades has started moving online. There are a number of options available including Feng Office, Google docs and even Microsoft is half way there with Office-live. With regards to Microsoft, They've got a distinct advantage in that they are so dominant in the "Office market" that all other "Office" applications have to pretty much conform to their standards or they wouldn't easily be even considered. And that includes me! I hate receiving an emailed document from someone (or sending one), only to find out that the formatting looks weird or has some compatibility issues. Therefore, I've ended up installing Microsoft Office on my Ubuntu. OK, I digress... For many people this is the killer, but as standards are being defined for most areas of I.T., including the open document standard and Office Open XML standard, it will matter less and less in terms of what you use to get the job done.
The adoption of cloud computing/ "Software as a Service"/web applications is going to reduce the importance of which OS you use over the next few years. So where is MS going? They're going to have to focus their attention on applications instead. I don't think that they can really avoid reduced importance in terms of OS choice if most apps are online. They're going to have to come up with some pretty inventive strategies in order to keep their users "locked" to Windows.
Default Ubuntu install
Let's get started. Firstly, I've installed Ubuntu 9.10 Karmick Koala but these instructions should generally work for other versions of Ubuntu and probably other Debian or Ubuntu based distributions. I'm running a Dell Latitude E6500 Laptop with 4 Gigs of RAM and a 2.4Ghz Core 2 Duo CPU. I then checked that my wireless Internet connection was working as well as ensuring that the Graphics card was ok. I didn't install any additional Graphics drivers for this machine - All I did to check that things were kinda working was to Right click on the desktop >>"Change Desktop Background">> Visual Effects Tab and enabled the "Extra" radio button. This Enables some 3D graphical effects, but I think that more importantly, checks to see that the graphics drivers are working. If you get an error, while enabling anything but "None", then you may need to install your graphics drivers first. Firstly, try click on Start >> System >> Administration >> Hardware Drivers. Assuming that you've got a working Internet connection, it will search for proprietary hardware drivers and hopefully find some that will work for you. Failing that, you'll have to Google for an answer to installing your graphics drivers. Without these you won't be able to enable the graphical effects that I'm showing here.
Ok, now that we're sure that your graphics card should work, the next step is to get "Compiz Fusion" working. Well, my first question when I heard about this "Compiz" thing, was what the @#$ is that? Well... hmmm.... Google it and you'll probably get an answer like "Compiz is a compositing window manager for the X Window System". OK, so that didn't help much to me trying to set up Linux for the first time - It basically replaces the basic window manager which renders the windows on the screen. As long as you're using a relatively recent version of Ubuntu, Compiz should already be installed by default. But just as a check you can click on Start >> Add/Remove Software or Start >> Ubuntu Software Center (depending on your version of Ubuntu).
In order to really get much use out of Compiz, you have to install the Settings Manager component. Once again, click Start << "Add/Remove Software" or "Ubuntu Software center". In the search bar, type compizconfig-settings-manager or ccsm for short and install the tool. Once it has been installed, you should be able to launch it by clicking on Start >> System >> Preferences >> CompizConfig Settings Manager. This is where the fun really starts!
I'll leave you to explore all the settings for yourself as it really comes down to personal preference, but the following plugins are those that I've enabled:
Desktop Cube - This is an absolute must :-) It allows the extension of your desktop onto the four (or more) faces of a cube. Explore the settings which allow you to set the transparency of the cube while rotating (on the "Transparency" tab) and setting a background image while rotating (under the "Skydome" section on "Appearance" tab).
Rotate Cube - In order to see the effects set above, ensure that the "Rotate Cube" plugin is enabled. Now, you can test that everything is working 100% - Assuming that you haven't changed any of the keyboard shortcuts, you can hold your middle mouse button down on the desktop (not on an open window) and move the mouse sideways which should start rotating the desktop. Alternatively, you can press
"Expo" plugin - This unfolds your cubed desktop and allows you to drag windows across all the faces. The standard effect I think is a straight horizontal alignment of the workspaces as apposed to the curved ones that I have (You'll see what I mean once you do it). In order to get it curved, you can set the "Deformation" on the "Appearance" tab to "Curve". On the same tab, you can set the reflection as well which also looks great. Once all this is enabled, press "Super + e " to activate the view below. (Hu... What's "Super"? Well... Linux talk for the "Windows button".)
Fading Windows plugin: Fading windows in and out when maximizing and minimizing - Pretty self explanatory.
Window Decoration: Well... mine is enabled, but I've changed my window decorations to be managed by "Emerald". Google it for more info on what is is, if you're interested.
Wobbly Windows: These are pretty interesting effects you'll see when moving your windows around.
Window Previews: These add previews when hovering over the application listed on the taskbar, similar to Windows 7.
Application Switcher: This allows you
Group and Tab Windows: This is an interesting one that allows you to take two windows and kinda glue them together as if they were on either sides of a piece of paper and flip them over. This took me a little while to figure out though, as you've got to first group two (or more) windows, tab them and then you can flip them. Play around and have a look at the default key bindings.
Ring Switcher: This is a nice alternative to the
Shift Switcher: This is another alternative effect similar to the
Ok, that's pretty much a rundown of most of the plugins that I've enabled for Compiz, but it really takes some exploring to get it working the way you want. Just a note that it is possible to install additional plugins from the Compiz site, but I'm not going to cover any of that here.
If you've ever seen a Mac and thought that thing at the bottom of the screen that they use to launch applications was pretty cool, well... you can have your own for Linux/ Ubuntu as well. It's pretty simple to install - click on start << Add/Remove Software or Ubuntu Software Center. Then type in "Cairo" in the search box and install Cairo Dock. Done! Now... like everything else, the next step is to customize it. Custom themes can be downloaded from the Internet by Googling for Cairo Dock themes. There are tons of themes on http://gnome-look.org/. For a more in-depth tutorial on installing and configuring Cairo dock see http://linuxbsdos.com/2009/11/12/sex-up-ubuntu-9-10-desktop-with-cairo-dock/
Backgounds, GTK themes, icons and cursors:
Ok, this is probably one of the first things that most people do and really easy, but for completeness, I'll add it. You can either double click on any image and once opened in "Eye of GNOME" (The image viewing program) you can click on Image << Set as Background Image. Done~! Another way to to set it by right clicking on the desktop and then Change Desktop Background. Images can be dragged onto the application to add them. GTK 2.0 themes, icons and cursors can also be downloaded from gnomelook.org and added in the same way. This will probably the staple of your customization tasks so get used to it.
Finally, different fonts can be installed by copying true type font files to /usr/share/fonts/truetype/. Once you've copied them there, they should be available to select from the
Font selection in Appearance Settings. As a side note, I think that Windows uses Segoe UI font, which can be downloaded somewhere - just check the legality, as it may belong to Microsoft and therefore be illegal.
There are a number of other software tools that I've used in the screencast that I'll detail in upcomming posts. As I've gone along, I've learned some lessons the hard way, but refined things as I progressed. Hopefully, this is a gives you an idea customizing your new Ubuntu. After every install, I've gone through a similar process outlined above and am currently busy building a live CD which has all the above customizations set by default, saving me the time and effort customizing Ubuntu each time. Plus, I'll be able to give a friend a "complete", themed Ubuntu with a number of very useful programs and codecs -Will come one of these days!
Google started off as a search engine as everyone knows. Over the years, it has branched out into many different avenues including cell phones, advertising, hosting, email etc. If I think of the information that Google has of me... My name, surname, address, telephone number, all my emails, my source code etc, they have a lot of power. Why provide services and products like App Engine, Gmail, Voice, Android, Chrome, Health, Finance etc for free?
Information is power. Looking at Chrome browser, Android OS, Gmail, these are a really powerful combination... Not only for the end user, but for Google in terms of information they have of you! There seems to be two sides to Google - One side which is aimed at the home user and the other at businesses. There is no doubt that Google has many offerings aimed at businesses which are easily understandable. There is the free Google App Engine service for the home user or small company, but a paid for service for larger corporations (Or businesses that expand into those requirements). And then there are the multitudes of applications that are aimed mainly at the home user such as calendar, Finance etc. These on the surface make less sense from a profit point of view - Where are they going to make their money from? This really has been a question of Google’s business model since the earliest days.
One of the richest men in the UK is Bernie Ecclestone, who made his fortunes by owning exclusive rights to advertising in Formula 1 racing. And in the same way, I believe that Google is positioning themselves in becoming the number one choice of direct marketing information. In the F1 case, no one has a choice, but if Google has the most reliable data regarding individuals needs and interests, then why would advertisers go anywhere else? As I’ve mentioned before, online advertising has already surpassed that of television in the U.K.
Lets look at a potential case assuming the use of the following tools by an individual:
Google Appengine for hosting a business application,
Together, these products and services can offer a massive amount of information - from physical location, personal preferences in purchasing, contacts/ friends, interests based on search criteria, "owning" your business(in that it "controls" source code), knowing the details of your financial portfolio, health information and your day to day schedules. This is a lot of trust and a lot of power!
Google is becoming part of the fabric of modern society - in our personal and business space. Even though I “trust” Google with my personal information, I think that they should be carefully watched. Imagine the possibilities of data mining across all the data they have.
This is where GAE, comes in... It's a free service, has a large amount of bandwidth /CPU time available and can scale almost infinitely. For a small/medium website, the free service will suit perfectly and if the free limits are exceeded, there is a paid for option as well. To give an idea of the free quotas, it's kinda like Gmail - You can buy more space if needed, but who really needs more than 7 Gigs?
There are a few restrictions due to the nature of distributed servers which makes up the cloud service. One of the most important is that GAE doesn't use a traditional relational database. They use what is called "Big Table", which for the most part, works fine except that JOINS and SELECT statements aren't supported in the same way as other RDBMS's. Another significant restriction is that there is no write access to the file system.
The significance of this is that all dynamically uploaded content, has to be stored in the "database". Fortunately, Big Table allows storing of a Blob, which is an infinite byte stream. A further problem that is caused by some of the restrictions, is that there are only a few frameworks that can be used. I think that the struts framework is partially supported, but probably needs a bit of modification.
I also did a search for Java based content management systems that can be used on GAE - Found... 0. Hmmm... Seems like an opportunity to me. Having built an application on the framework should give me a bit of a head start in developing a Java CMS for GAE. I'm currently working on Microsoft SharePoint development and think that some of the ideas could be built into the CMS. (Ok, I know that SharePoint is a lot more than just a CMS but there are a few similar functions.) Some of the features that I'd propose are:
• Dynamically built menu structures
• Security management (I.e. permissions for pages/ content/ lists/ data etc.)
• User and role management
• Master pages for styling and layout.
• Dynamically added pages
• Email from website to registered users re updated news and postings.
• Email to website, to update news.
• "Web parts/ widgets" for extended functionality. I don’t think that it would be possible to upload these dynamically as you wouldn’t be able to upload compiled code and write it to the file system.
• Generic libraries to store content. These libraries will be able to store any content types.
- Images/ photos
- Style sheets, js files etc.
When building my web application, it was like taking a step back a couple of years in that I had to start coding at a pretty “low level”. I think that an open source framework will definitely make Java development on GAE much easier than it currently is.
This has serious implications when building interfacing systems with forms which effect multiple CRM entities. In my opinion there seem to be a few strategies in dealing with this:
1) Logging the exception - Well, this should be done in any case but in effect nothing is done to avoid inconsistent transactions. This is the simplest strategy, but could have some very serious associated risks.
2) Designing forms which avoid updating multiple entities at once and thereby avoiding the need for transactions. Eg. If a form which was intended to update a contact entity and a related address entity, 2 separate forms with “save” buttons on each page would enable updating each entity separately. From a usability perspective it would be understood that the two actions are separate. This is not always possible, and could make for a more cumbersome interface though. Eg. In a Parent-child relationship, the parent record, and by implication, the GUID, may not be available when wanting to insert a related entity.
3) Develop custom code to manage the transaction state. This is far from simple though. Code would have to ensure the ACID properties - Atomicity, Consistency, Isolation and Durability.
Each operation in the transaction would have to be firstly stored in a list. Therefore, if an insert operation succeeds with a subsequent operation failing, the record can be deleted. Once an insert is successfully achieved, the GUID would be stored with the record in the list.
There are some serious failings with this approach though. Firstly, there are often CRM workflows associated with insert/update operations. If a workflow is started upon creation and then the record is deleted, problems may occur with the delete. Records of partially complete transactions may still be modified or read by other processes before completion of the transaction. This could be partially rectified by means of using a singleton class which provides lock mechanism on a record. But this can only be from the perspective of interfacing systems. Nothing would prevent a CRM user from reading dirty data. If an delete operation has to be rolled back, an insert would be performed with the original data - The record would get a different GUID, which could have other implications. These scenarios are fairly simple though - It gets much more complex when trying to restore the state of entities with multiple relationships, as changes would have to cascade.
As can be seen, there doesn't seem to be a simple solution to the transaction problem, and it should be carefully considered before using CRM as data store for interfacing systems, assuming that just because it uses SQL server as an underlying database, it supports all database like functions.
As I said with Linux, firstly you've got largly 3 different interface's - Gnome, KDE and Xfce. Then you've got the different package managers - APT,
YUM etc. And that aside, there are literally hundreds of different flavors of Linux. So, the permutations are endless. And with Linux making up approximately 1% of the total market share, it means that sometimes there aren't thousands of people who've got the exact same issue that you do.
Sure, people will argue that "Linux is Linux" regardless of distribution, but it does mean that there are sometimes subtle differences that to a new user, some advice on a Mandriva forum will not necessarily work on OpenSuse machine. To a new user, Terminal sessions are probably totally foreign and they simply copy and paste commands from forums and see what happens - sometimes with "disastrous effects". I know... I've been there. Today I managed to mess up my OpenOffice while trying to force it to use a theme different from the rest of the Gnome interface. It took quite a while to fix the issue finally and get it to work as it should.
And there is the advantage as well... You can do those sorts of things in Linux - You can make it jump through hoops if you wanted. For the most part it's an obidiant dog that you can train to do anything you want to, but once in a while when trying to get it to jump through a flaming hoop - it's turns around and bites you in the ass. But then again, what would you expect?
So, I'm totally for Ubuntu who've standardised things a bit. It makes it so much easier looking for a solution - at least in the Linux world you're not totally alone.
So, what is it all about? well, basically, it integrates some of Google's Social networking tools into one place, ie. Gmail. Currently it integrates Picasa, Flickr, Google Reader, Twitter, Blogger, YouTube and all the Google chat statuses. so, basically everything you post in these places, will appear to your followers. Hmmm... Intersting. It's obviously an attempt to take on Facebook on the social networking side. Apparently Facebook has about 400 million users whereas Gmail has about 170 million if stats are to believed. But, I guess given a few months, this will all change again. The problem is that with networks, value is proportional to the number of members. This is sort of a reverse supply and demand rule. Usually, the more people that have an item, the lower the value of the item, whereas there isn't much point to a network if you're the only one on it. So... Google has quite a bit of catching up, but it may just do it... As it's got a great base to start with.
It is quite scary though how Google is holding all the chips in the IT world - Data in this case and is in the process of consolidating and adding to it - they're no longer just in the search business. They haven't been for a long time...
What really astounds me is that Linux, but more specifically Ubuntu, doesn't have a larger market share. It's free and except for time, costs nothing to install. However, Microsoft would argue that the cost incurred in terms of time and support outweighs the initial purchase, but for a home user - I doubt it. I reformatted my laptop with the latest Ubuntu 9.10 a few days ago, and the most time consuming activity by far was the copying of data to another location. Once I was set up to go and had my USB startup disk plugged in, it took a timed 10 minutes to install and working with everything. Even my Windows colleagues were impressed. After the installing Ubuntu 9.10 on my Dell Latitude E6500, there was nothing extra to do. Everything worked - Sound, Video, Wireless, 3G mobile, web cam etc. There is no ways that you could ever install any version of Windows that fast (Including Office).
Both have their place and I actually still work on Windows every day, but for anything personal, I definitely prefer Ubuntu. I just can't understand why Ubuntu doesn't have a larger market share. I think that some of the reasons include lack of marketing, the legacy perception that Linux is difficult to use and Windows entrenchment in terms of applications. Granted, this is why I still use Windows on a daily basis, but as a software developer, I'm not exactly the average user.
As I work for a Microsoft Gold Partner company, we get previews of Microsoft's products before launch with many free licenses. For example, I could have started using Windows 7, more than a year ago already. So with that in mind, I was once asked whether I prefer Windows or Linux - if both were free. It's a very simplified question but it suddenly becomes a whole lot more difficult... But I suppose, by now it should be obvious what my decision was... Ubuntu!