Chrome OS, Follow-up
November 30, 2009
A week ago Google said the first devices (they are devices now, not only the netbooks, but they said the netbooks will be the first to have it) running its new Chrome operating system will be available by the end of 2010, Sundar Pichai, a Google VP, said “the company is specifying what hardware features, such as chips and wireless cards, devices must have to run the software”
“The new operating system comes as Google looks for ways to diversify its business. Online advertising constitutes 97% of the company’s $22 billion in annual revenue and efforts to cash in on its software applications and video-sharing site YouTube have generated limited results. Analysts say Chrome OS is an ambitious long-term strategic move, but any impact on the company’s financial performance would be years away.”
“In a statement, Microsoft said Google’s product "appears to be in the early stages of development."” [WSJ]
Pichai said “Chrome OS can pull data from devices such as digital cameras and will support printing, it boots up to bring consumers right into the company’s Chrome Web browser. It stores users’ data online, allowing them to access it from other devices. But the software will have some limited ability for users to perform tasks without Internet access, such as watching videos” one of the questions raised about the software in the past.
Google Chrome OS: Operating System redefinition
July 8, 2009
Sundar Pichai is Introducing the Google Chrome OS on google’s blog.
Here we go again, Google is extending its web domination thought to something bigger, The thought is “how do you design an OS knowing what and how people are using it”. and for now the Web is the answer.
I believe it’s a part of a smarter strategy by google to get a tiny OS slice – for now – from MS by introducing it on the netbooks, while keeping in mind the previous losers and MS’s bloody fight to keep the first seat in the OS world.
NH Code Camp 09
March 4, 2009
last weekend I had the opportunity to attend the New Hampshire Code Camp ‘09, organized by the New Hampshire’s .net user group. Within the next few lines I’ll try to give a brief for the sessions I caught and my comments about them.
Keynote, How to survive as a techie in a lean economy by Patrick Hynds
this one has no references so I’ll give a quick brief of what he was trying to say, as the keynote speaker he started with a session about the market’s hot topic of how to survive in this economy, he was trying to give a quick advise on how to keep your business and your job, starting with how should you conservatively acting with your boss/customers even they were idiots, where you should watch your steps and adjust your actions to meet their goals only
even if they were not the perfect thing and you refuse to release something not prefect, then he talked about the value of communication and status reporting, we all know the value of the status reporting but who can always stick to sending out on a regular bases, he told a story about a manager with a number of employees where they should be reporting a status every week, it was literarily optional and there was only one employee who was doing the normal and sending it out on time, the manager didn’t follow exactly what his employees were doing but he just noticed that there was only one person who has the self-discipline to send his status report every week, and when the layoff time came over and he had to pick one team member to keep, he kept that one. Avoid being dogmatic, there are better ways to express your tech, don’t destroy your job by being the naysayer, make your pitch, but if you are overruled, accept it and try to pitch again or find someplace else. Don’t deal with the technologies as a religion you have to accept the others if their technology has dominated the market and you have no where else to go, for instance if you are a java developer and laid off your job you can’t stay at home because you can’t find a similar job, you will have to dig into the other world and get yourself a job to survive. Picking a niche, experts are always needed, so you will have to pick a one and dive into, he gave examples like usability – silverlight and WPF, technical problem solver – you are in if you can always solve the problems, scalability – a growth industry, security – hard to send offshore, most of these things can’t be exported, he was very aggressive explaining this point however he was talking reality when it comes on saving your income and your job. Business timeline importance, your product would be useless if you have missed your business timeline, don’t over engineer, for instance if an army asked you to produce a radar system and you have delivered it a day after the war started, at this moment your great radar became useless. This is a tough time for all industries and you must be a profit center, you must do everything right and distinguish yourself.
MSBuild Session by Steven St Jean
the session was fairly good, the MS build is a general purpose build automation engine that’s shipped with .net 2.0, 3.5, vistas, and windows server 2008, it uses xml-based language with a syntax similar to ant but with more power – he claimed, capable of using parallel processing and some other good stuff, here are some good references:
- MSBuild Overview – a good place to start if you are brand new to MSBuild.
- MSBuild Task Reference – a list of the built-in tasks, or “actions”, that can be performed by an MSBuild script.
- MSBuild Community Tasks – an open source project that collects a number of tasks to perform common actions that are not included. If you are doing anything non-trivial with your build, especially if you are creating deployment scripts, this will be indispensable. Download the nightly build (many new tasks/features since the last release).
- MSBuild Reserved Properties – a list of the built-in properties (variables) available to your script. Also keep in mind that all environment variables are automatically available to your script using the property syntax (so you get things like $(USERNAME), $(COMPUTERNAME), and $(SystemRoot) for free).
- MSBuild Well-known Item Metadata – a list of the metadata properties available on all items (variables with properties).
and as a MSBuild engine expert over the last three years he recommended “MSBuild and team foundation build” book as the no.1 reference.
JQuery Session by Chris Bowen
the session I liked the most, Chris is a very bright guy, knows what he is talking about, he started his session with the JQuery/MS story you all know from
Scott Gu’s blog and the others who spread the word, then made some nice demos that show how cool and powerful the JQuery library is, and how its selectors, animations, plugins, events have converted the JavaScript nightmare into an easy thing to do.
he has recommend the JQuery in Action as the no.1 reference for the JQuery, actually that book had two public recommendations during the event, that puts it up high on my reading list.
Team Foundation Server 2010 by Phil Denoncourt
I’ve been trapped into this one, I just wanted to know what’s new on the team foundation server and it turned out to be almost nothing, I wished I’ve attended anything else, here is a reference link for what’s new on the team foundation server 2010 if you are a fan.
Automating SharePoint with web services by Tony Sukiennik
yet another great session on the event, he featured JQuery and put it up as the greatest break that has been done lately on development! the session was a life cycle for the development of a client side service call for a SharePoint information on a SharePoint page, by the end of that session I’ve admitted that JQuery is a real break. more on the topic.
one of the interesting things I noticed during the event is the user group age range, with an easy look you can put them all between 35 and 75 and more than
70% of them are 50+, on the other hand when you look at the Cairo .net user group you will find almost 99% are below 25, this might raise up some interesting questions about who’s leading the industry, and who wants to know.
stop and listen, a little ad at Daniel Webster College where we had the code camp, enjoy.
“It’s all luck, when you get kicked out of your college, your first job destination becomes your track” a friend of mine said, yes this is true in the reactive people’s world, however the great people who could proactively shape their future and destinations, who could sense what’s best for them, their abilities and their market best opportunities, would have some other opinions.
This still doesn’t put any of the two tracks in the lower block, on all levels java is paying better everywhere in the world, and it’s expected to be like that for a while, Microsoft wins in the developer communities’ domination, it’s like when a country wins a war and their people get into a deep poverty and their soldiers get killed, the country still wins but all what their people have is the pride. Microsoft won but their developers didn’t.
Are you a java developer or a .net developer? This question applies on more than eighty percent of the world’s current software developers, I think you already asked yourself at least once which one is the best for you, and if it’s really a first time choice or you can convert whenever you want or when the market wants, and how would this affect your career.
It’s becoming a culture that you can’t convert – or work on both – and the developers started to believe it because they have separate departments in their companies, without giving it a deep thought why and what makes it a first time choice, and when you work on this you can’t do that.
it’s all about knowledge, you can get your hands on .net for years and then convert to work on a java enterprise or vice versa as long as it puts you on the same development level and you have the potential and attitude to get yourself on this level, and on the other hand you do have your own wide and thoughtful reasons, you would see some resistance claming that this is considered as horizontal knowledge scalability or you can’t become a great developer that way, let’s step back and thoughtfully look into it, you work only on couple projects, don’t you? And you already an expert with everything you practiced on these java or .net projects, so there is no other way to do more, unless you do one of two. first, take your career to the next level (most probably would be an architect if you are desiring a technical step, or managing development projects or operations if you are desiring a business step). second, you develop your skills by self studying the corners of the technology you use, and this doesn’t count on your career path unless you apply it on an enterprise project. don’t you think so? so you are who you decide, being a great developer or not, your attitude and self-awareness are what makes your step on a solid stair.
I don’t think there is a big difference in both technologies, both do the same job with almost the same cost in the enterprise, check out this article, it has some good information about Java vs. .Net from the technology perspective.
let’s conclude this in the following, you make your choice, you can be powerful on anything, as long as you believe you are powerful inside.
Transferring session content between ASP and ASP.NET
March 27, 2008
recently I had to integrate two applications one built in ASP classic and the other was an ASP.NET application, a problem you might have is transferring the session content between the two applications, you will have to do a workaround to get it done, the following sample illustrates how:
the ASP classic part
where your session variables are set, and where you want to do the transit between the two application, drop the following code into two ASP classic files, the first one is where you set the session variables, and want to transit to the ASP.NET application, the second ASP classic page submits the compound session content to the receiving ASP.NET page:
<TITLE>ASPPage1.asp</TITLE>
<%
‘ This is the page where we just set the ASP Classic Session Variables
Session(“username”)=”waleed”
session(“email”)=”email@gmail.com”
Server.Transfer(“ASPPage2.asp”)
%>
===================================================
<TITLE>ASPPage2.asp</TITLE>
<%
‘ We pull all the session variable names/values and stick them in a form
‘ and then we submit the form to our receiving ASP.NET page (ASPNETPage.aspx)
Response.Write(“<form name=t id=t action=ASPNETPage.aspx method=post >”)
For each Item in Session.Contents
Response.Write(“<input type=hidden name=” & Item)
Response.Write( ” value=” & Session.Contents(item) & ” >”)
next
Response.Write(“</form>”)
Response.Write(“<script>t.submit();</script>”)
%>
the ASP.NET part
this is where you would receive and set the ASP.NET session variables.
<TITLE>ASPNETPage.aspx</TITLE>
<%@ Page language=”c#” %>
<script runat=server>
private void Page_Load(object sender, System.EventArgs e)
{
for(int i=0;i<Request.Form.Count;i++)
{
Session[Request.Form.GetKey(i)]=Request.Form[i].ToString();
}
//where you will start your ASP.NET application
Server.Transfer(“YourASPNETApp.aspx”,true);
}
</script>
EDC ‘08 and Patrick Hynds
March 12, 2008
After a couple of delays, next month the EDC (Egyptian Developer Conference) ‘08 will take place in Cairo, nothing has been announced yet about the agenda, place, speakers and topics, all we’ve got is “the mid of April”.
Patrick Hynds (MDC’s most famous speaker) has just confirmed his participation and announced the topics he will be speaking about in the conference.
see you all there!
I am posting this to help you and myself on remembering and getting these three actions done with any ASP.NET 2.0 application that uses Membership Provider before pushing it into a production server:
1. Add “applicationname” attribute in Profile Provider. IF you do not add a specific name here, Profile provider will use a GUID. So, on your local machine you will have one GUID and on production server you will have another GUID. If you copy your local DB to production server, you won’t be able to reuse the records available in your local DB and ASP.NET will create a new application on production. Here’s where you need to add it:
- <profile enabled=”true”>
<providers>
<clear />
<add name=”…” type=”System.Web.Profile.SqlProfileProvider” connectionStringName=”…” applicationName=”YourApplicationName” description=”…” />
</providers>
2. Profile provider will automatically save the profile whenever a page request completes. So, this might result in unnecessary UPDATE on your DB which has significant performance penalty. So, turn off automatic save and do it explicitly from your code using Profile.Save();
<profile enabled=”true” automaticSaveEnabled=”false” >
3. Role Manager always queries database in order to get the user roles. This has significant performance penalty. You can avoid this by letting Role Manager cache role information on cookie. But this will work for users who do not have a lot of roles assigned to them which exceeds the 2 KB limit of Cookie. But it’s not a common scenario. So, you can safely store role info on cookie and save one DB roundtrip on every request to .aspx and .asmx.
<roleManager enabled=”true” cacheRolesInCookie=”true” >
Best Companies to work for!
February 6, 2008
A great start by a great guy called Mohamed Nour (I still don’t know him personally till this moment), he did a tremendous job publishing an initial survey results about the Software Industry Market in Egypt, the results still not pretty accurate but we still need to appreciate the faithful attempt to provide such information, the survey aims to publish an accurate indicators about the software development industry inside Egypt including the professional level of the software companies, the companies technical level, management, process, salaries and work environments.
the following is one of the survey charts indicates the best companies based on the votes:
the survey has indicated some good future considerations, in my point of view the most important points for the next attempt would be providing the authorized protection by one of the major entities like MCIT, and a good marketing campaign for the survey using independent participants so it could cover thousands of participants of the different market slices to provide more accurate results.
Web applications testing with multiple browsers
January 10, 2008
it becomes a big problem since there have been multiple browsers to test on. Testing with all browsers – especially these days – is almost impossible, but you can come a lot closer than you may think. Delivering a web application to the Internet needs a comprehensive testing to ensure a consistent user experience with different browsers and operating systems.
Who will use your application?
When you start thinking about the many combinations of browsers and operating systems that your customers might be using to access your web application, a complete suite of cross-browsers tests might seem like a headache on your development resources. a quick glance at browser statistics for December 2007 shows IE with a commanding lead in browser usage (v6.x and v7.x) that’s a large majority, but not an overwhelming one, so you can’t afford losing the remaining percentage, once you decide what browsers are supported you need to decide how to actually test with these browsers.
Multiple browsers testing
Running multiple versions of the same browser concurrently can be a bit tricky, as the install process for most browsers overwrites any previous versions. Fortunately, there are workarounds. For Firefox, it’s generally as simple as saving the executable of each browser under a different name, and then being sure to launch the profile manager the first time you start each version so that profiles aren’t shared, the following image for two different Firefox versions running simultaneously.
For Internet Explorer, the process is a little trickier, Manfred Staudinger perfected the standalone versions by adding IE version numbers to the title bar of the standalone browser window. Moreover, by removing the “IE” key in the registry subkey [HKLM\SOFTWARE\Microsoft\Internet Explorer\Version Vector] Internet Explore defaulted to respecting conditional comments based on the version number prebuilt in the program, the following images show five different versions of the IE running simultaneously.
virtualization
Of course, browsers are only half the battle in your testing; you’ll probably want to test across multiple operating systems as well, virtualization involves multiple OSes running simultaneously. You’ll want a test machine with some form of virtualization on board. A number of tools are available, including VMWare and Virtual PC, that make it easy to run Windows and most other x86-compatible OSes on any generic PC. One OS acts as a host, and the others run within the virtualization application. This makes it possible to test your applications on.
The mobile world
The boom in mobile device usage means this ever-expanding user community should not be ignored. Like personal computers, you can assemble a group of mobile devices to use for testing, or you can use third-party services and products to assist with mobile testing. A great resource is the DotMobi Virtual Developer Lab, which provides access to hundreds of mobile devices for testing.
Outsource your testing
Browsershots.org is an example for what you can get from the free version of this sort of service. the following shows the different options you have available to you. For each box you check, you get a PNG file with a screenshot of the URL you specify for that browser/OS combination. The process can take a half hour or more, so you’ll want to keep it running in the background while you do something else.
The key issue is to test an application so it functions properly within supported browsers. How do you test your Web applications? Do you get users involved or keep it in-house? Share your thoughts and experience.
Individual AppPools vs. Shared Pooling
October 2, 2007
Many hosting companies have based their windows-based hosting environments on the concept of shared application pooling, by sharing AppPools those companies achieved server densities similar to those seen on Apache (Linux/Unix). But for any customer with a website that processes credit card information directly, or has proprietary scripts, this is really a significant problem. their sites share a security identity with the other sites in the same AppPool. A developer – using a coding technique called “RevertToSelf” – can view the code (in read-only mode) of all of the sites within the same AppPool.The problem this causes for the customer is that their site is not secure. the more things that can go wrong or cause the sites within that AppPool to crash – like the famous pooling crash between ASP.NET 1.1 and 2.0 – the more customers who will be affected by such a calamity.
Read more:
configuring Application Pools in IIS 6.0
running multiple ASP.NET applications



