voices of Egypt

Saturday, November 26, 2005

Web Highlights

A few months ago, specifically last July/August I came up with this idea, I made a team and we had hopes to build it together but sadly we failed.
I am writing below everything about it, maybe anyone out in this world could pick it up and do good with it..
(sorry if images weren't attached, i will attach later documents and fotos)
--------------Part of the first document:
4. Project Overview
a. Project Core
• Add-On
-Supports All Top Browsers (Internet Explorer , FireFox, Opera…etc).
-Enables Saving and Highlighting of Content in any web site.
-Capable of retrieving back saved content and highlights whenever a highlighted site is revisited.
-Searching through saved and highlighted Content.
-Can be packed as a plugin, add-on or part of a toolbar.
-Supports searching for related highlights or saved content.
-Counts, Ranks and shows relevant statistics and legends to users regarding their and others’ highlights.
-Uses the Service to retrieve the highlights of others, notifications, submit saved and highlighted content.
-Understands special tags and has enough logic to support customization by web masters to control the look and feel of highlights in their web applications.
-Support Mobile and Smart Devices Browsers that are best candidates to use a lighter search as the one introduced here, that is; highlights search.
-Multilanguage support in its help, menus, options and internal object linking and embedding mechanisms.
-MultiPlatform support, through releasing C++, .Net and java modules as well as opening the door for 3rd parties to construct customized clients.
-Consumes a standard RSS Server feed for updates, notifications and discovery of highlights statistics and content updates from server.
• Service
-Saves your saved content and highlights on server enabling you to access it from anywhere.
-Notifies users about their saved and highlighted content, subscribers to the service receive RSS notifications consumed by their clients/add-on about whether or not the original content has been changed on the web sites, other people highlighted/saved this content, someone ranked that highlight or the total number of search hits and criteria that led to this content/highlight as its result from other web surfers.
-Through the RSS feeds, 3rd party clients and our add-on can view the page in two modes or more customized modes that highlights the viewed page according to all web users highlights, it could be more than just colours, maybe shades according to the support of CSS in both site and browser.
-Search web highlights and saved content, filtering out parts of sites that no one cares about, providing the first human non-automatic easy means to know what interests people, reports and statistics of that kind can manage web trends, make manufacturers, web masters and others know exactly what web users like and are interested in. Users can know who highlighted or saved that content by viewing their nicknames, they can then connect with each other and collaborate about it either through mails or discussions about that specific highlight, people with same interests can come closer.
-Categorized saving and highlighting can be automatic or manual, later on the system can smart tag the highlight and recommend a category choice for you. Smart tags would as well recommend you to highlight regions if they were highlighted by many others before, you could just simply have a shortcut key in your add-on or client that takes you directly to highlights or recommended highlights once visiting a new page.
-Computability with tags as well as introducing our own, knowing shopping items from love greeting cards, crawling the web sites to know their state and content changes as well as caching and comparing content.
-Introducing a new ranking factor for websites, which is not just the number of visitors, pages they visit or where these visitors come from, it will include the portions and percentage of highlights in these sites and how many others highlighted these same regions again and again.
-Constructing our SDK to open the scope and possibilities for all kinds of applications to build on, expand and integrate with our system, web masters can use it to determine how highlights and saved content looks like, how their tags would be understood from the crawler and client/add-on developers can well know how to save to server and use the service in their own platforms and applications.
[Unattached Image]
b. Implementation
• Agreeing on Copying and Saving Strategy
-Unique Saving Format (XML) leads to:
->less space used
->standard format supported by 3rd party clients
->easy to search
->common technology to save/retrieve on client and on server
->better ads based on clearer retrieved highlights
->protection against vulnerable/malicious attacks
->no need for a messy structure of files and folders, only xml containers that will hold together the saved portions/highlights.

• Add-On
Context menu-Server Access-Viewing Back-Report and Statistics-Search-Automatic Sharing-Compression-Encryption/local multiuser support/profiles support-legends and site ranks/highlight degrees-Options (colours, view all highlights or top 10% or my highlights, notifications…)
• Service
Search-Cachining-Ads-User profiles/authentication/reports and notifications-page ranking-crawling
RSS sample:



...


• Defining Interfaces
Tags-support add-on mods for special content(maps..etc)-..etc
c. Impact
• Internet activity and realization boost.
• Introduction of the highlighting concept for other content like documents, movies and others, which makes a new industry of equivalent servers and add-on required technologies.
• Filtering the web using human activity and better understanding human interests which leads to better ads, statistics, services, reports, research and much less content to search in.
• More appealing for smart and smaller devices and provides collaboration and discussion between people of same highlights=interests, RSS feeds can make you know on the go.
5. Project Structure
The project proposed structure could be as follows:
5 teams each of two working on one of the following 5 subprojects that together makes up the highlights system:
1. Client Team
2. Server Team
3. Storage Team
4. SDK Team
5. Search Team
Each of the above teams will reach an agreement on the interfaces and what each team needs from the others, once these interfaces, properties and public methods are done, each team can go on with their investigation and implementation independent of others progress.

For collaboration and source control, we will reach an agreement.
For now I need all of you to send me an email at
ahamdy@gmail.com with the email address you want me to add you to any future notification regarding the project and whenever we make an egroup/other I will invite that email address.

As for meetings, we can make a kickoff meeting at my place 8 pm next Friday if agreed by everybody.
6. Resources
Our current resources about this subject:
• http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/ext/tutorials/button.asp
• http://www.mvps.org/winhelp2002/ieplus.htm
• http://blogs.msdn.com/ie/archive/2004/09/06/226066.aspx
• http://www.microsoft.com/windows/ie/community/columns/browseraddons.mspx
• http://msdn.microsoft.com/ie/
• http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebgen/html/IEDev_ta_landing.asp
• http://msdn.microsoft.com/library/default.asp?url=/workshop/delivery/channel/overview/overview.asp
• http://www.codeproject.com/books/0764549146_8.asp
• http://www.codeproject.com/csharp/mshtml_automation.asp
• http://www.codeproject.com/com/MouseProcThunk.asp
• http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_adv/shell_adv.asp
• http://www.codeproject.com/csharp/commandbar.asp
• http://www.codeproject.com/csharp/dotnetbandobjects.asp
-----------------------Part of the second document:
4. Project Structure

a. Team Roles
The following is nothing more than just a set of proposed ideas for the team roles. I could be totally wrong, so you are totally free to add, remove and modify any of them. These roles represent a feature set that takes the idea to its extreme, it is better to realize the whole scope before planning.
• Client Team
Complete Feature Set
-Develop an add-on that can be installed alone or as a part of a most popular toolbars, compatible as well with top web browsers and top used platforms.
-Passes successfully top used anti-spyware and anti-viruses warnings through abiding by the common security rules of these scanners.
-Implementation of Context Menus, Toolbar buttons as well as certain graphical highlighting, smart tagging and commenting features that enables a richer end-user highlighting experience.
-Ability to connect to server web service to consume the server exposed services.
-Ability to use the storage APIs for local storage as well as retrieval.
-Ability to use the search APIs for local search.
-Ability to display various notifications and statistics concerning highlights and saved contents, these notifications might cover:
-number of users who highlighted the same highlights.
-whether or not a highlighted content has been changed, this change can be in the site’s link or the content itself.
-Ability to enrich end-user’s browsing experience through:
-Jumping directly to highlights whenever visiting a page.
-highlighting back a page the second time it is visited
-highlighting in various colours/shadows according to the number of web users’ highlights count.
-ability to categorize a highlight, propose a highlight.
-ability to save selected content or save and highlight or highlight only.
-ability to work anonymous or using a certain user profile, with cached offline authentication support in case user’s connection is lost and he is searching his highlights offline.
-ability to find related highlights as well as knowing how many times/last time a highlight was searched for/visited.
-Once installed it can either take the user to an online congratulations page with primary walkthroughs on how to maximize the benefit from the tool or an offline helpset provided with the toolbar (tradeoff decision will be considered when deciding about the optimum size threshold for the add-on, this choice has a huge impact on who will download, what bandwidth traffic we would suffer…etc).
-Relies on SDK Interfaces and maybe web services as well to do the parsing and conversion then passes off the xml to storage.
-mini versions that could be installed on smaller devices.
• SDK Team
Complete Feature Set
-Defines Interfaces that enables the Client team to consume its functionality and returns back xml.
-Is Extensible in the sense that it has its own basic xslt/other implementations that does the basic text/picture html content conversion to xml in addition to the fact that it can be extended through certain modules to support special tags/other content conversion.
-Defines the tags (as well as implements the conversion functionalities) that web masters should write inside their code in case they want to customize the look and feel of highlights in their page, web masters can as well use these tags to suggest zones as highlights or expose statistics or even categories for their content or products or even knowledge items.
-All conversions are two-way.
-Defines the RSS or ATOM structures needed for the notifications, is extensible as well to enable 3rd party clients to listen to more details and request more statistics about highlight notifications.
-Enables 3rd party server software makers to adopt highlights technology into their home systems by exposing the interfaces as well as porting modules for local installation and integration with these systems, this for example can enable webmasters to have highlights supported natively in IIS, thus they can have reports on what exactly their visitors read instead of knowing which files they requested.
• Storage Team
Complete Feature Set
-Supports top file systems and server database.
-Stores data as XML, has enough interfaces and web services to enable saving local and on server.
-Has internal mechanisms to index, defrag, secure and compress the storage.
-Has access interfaces for Search Team.
-Supports backup, migration and export scenarios.
-Stores Categories, profiles, search criteria and statistics.
• Search Team
Complete Feature Set
-Has interfaces that enables client and Server team to consume its service.
-Relies on Storage team for data retrieval.
-Implements Required mechanisms to search XML content.
-Relates content and provides related content results.
-Categorizes results and provides a list of recommendations.
-Provides a result set of statistics as well as other related information.
• Server Team
Complete Feature Set
-Provides a set of web services that exposes authentication, profiles, statistics and search.
-Provides a set of feeds exposing the notifications.
-Provides a web interface for registration, search as well as advertisements.
-Implements Caching of all result sets, crawling and validation against all storage content and notification mechanisms.
-Works on the results and output of storage and search team modules.
-Has third party providers catalog (add-ons to our add-on to support special functionalities) as well as ad-sense highlights advertisements.
-Provide a new ranking for web sites based on highlights intensity and volume.
-Provides an advisory center regarding web top highlights, either shopping products, books to read, trends to follow, news providers to trust…etc.
-Provides all kinds of statistics about the highlights and the content (circle of concern and circle of influence), what countries make the highest volume of highlights and what are the highest categories these highlights fall under, and what percentage does those highlights present of the original content, and comparisons as well between highlight statistics according to language, age, sex, internet speed, time of day...etc.

b. Work Load and Estimates
Teams would most probably need to undergo the following:
-Implementing Interfaces.
-Investigating and knowing new technologies.
-Using specific tools.
-Meeting, Analysis and Planning.
-Implementation.
-Unit testing.
-Integration and Issue Fixing.
-Documenting.
-Packaging, Deployment and Public releases.
-Web Hosting, Marketing and Launching.
This would stretch to an eight month time frame, more or less of about 1 hour of work a day.

c. Work Environment
I propose the following:
-We should choose a common communication environment for all teams, for example an egroup and special meetings if needed.
-Teams would be of two people or more, the structure of the project should allow them to work independent of the progress of other teams.
-Each team would choose their own implementation plans as well as meeting and communicational means.
-We should all agree on common scheduled integration phases to realize where we stand, what went wrong and what to do next.
-As early as possible we should consider issues of sizing, financial expenses of hosting, marketing (could include ads on google, msn messenger, even local radio channels…).
-All through the way we should be thinking of how to branch releases to enable exclusive sneak peeks that we could give to top software reviewing sites so as to please them as well as boost our advertising campaigns.
-Decisions about how the download (not search) site would look like, whether it should be outsourced…etc.
-Having the internal code as much readable as possible, as if it was an open source project, which might come in handy if google buys the project or something 
-At all times keep the resources accessible and configurable as most as possible to enable anyone to make us translation scripts, the more languages we speak the more the volume of users and knowledge the system collects.
-At a certain point we will have to consider writing down a professional privacy policy and terms of agreement and copyrights materials.
--------------------End.

Saturday, November 19, 2005

Dveloping for windows mobile 5

This is by far my first technical article on this blog.
Yesterday I decided to give windows mobile 5 a try, here is how the experience was:

First you have to install microsoft active sync the latest (4.1-currently)
Then you should install some developing tool that supports developing for windows mobile, I chose microsoft visual studio professional 2005 RTM and the development platform would be Microsoft Compact Framework 2.0
Within visual studio you can choose a new smart devices project then platform it to microsoft pocket pc 2003, yes not windows mobile 5.0, I realized that after a few hours, I don't know why my new imate KJam didn't support that choice, although it has windows mobile 5.0 / CE installed but it seems it is a problem with the resolution or something that prevents the application from starting. Anyways I went with the pocket pc 2003 as a choice for platform.
Then you have to fix your deployment choices, configure your device and choose the folder where you want the application to run on your mobile, you can then start building then deploying.
It constantly failed to deploy microsoft compact framework 2.0, after a while i checked the log file on the mobile set itself, it appeared that there was not enough memory!!!
The KJam set i got has 64 MB as RAM and 128 MB as ROM together with some 1 GB mini-SD card that i bought as an extension.
When deploying the MS CF 2.0 it goes to a fixed choice, that is installation is on the narrow 64 MB which even appears as 49 MB from the mobile as total. Sadly only about 19 MB was free, and the CF was about 23 MB or something so it wasn't possible to install it.
I then kept trying to remove programs, close existing ones, delete messages and contacts :) but no use. I restarted and disabled/removed the antivirus but still.
So I thought of upgrading the ROM, visited imate site to find two ROMs one with arabic support and the other with WWE (world wide english support), I opened a chat session with imate club support to ask about that. I asked why is there a version for arabic and another for english, why not just add support for arabic in the WWE one, but the response was there is no update, patch, language pack that supports arabic under the WWE edition, although there is some program out there that can do it for you and you can purchase it online. Pathetic, I thought having windows and buying KJam would end the unreasonable lack of support for arabic language but seems not. Anyways I tried installing both ROMs, first one crashed while doing it by the book, I thought I lost my mobile as it froze on some coloured screen with lots of numbers on it (ROM, ExtROM and stuff like that).
I thought it is better not to disconnect the USB cable, and try again and surprisingly it succeeded although the crash closed the activesync which acts as the underlying connectivity layer for the update ROM module.
It worked and the update succeeded, you can find that ROM update at (both arabic and WWE):
Clubimate Link
Updates are about 50 MB.
Now I decided not to synchronize my contacts, files and calendar settings before deploying the MS CF 2.0..
It succeeded this time and then i did the synchronize.
A strange thing happened, the mobile crashed upon restart and It froze on the SIM PIN request, no matter what it won't close or proceed, I had to remove the battery and try to open it again to work. It might be the CF or the ROM update, not sure.
Then I deployed my test application, it was a window with a button and a label. Once you click it, the label displays the .net CLR version and the wndows mobile version, Infact I really needed that information to make sure they sold me what they said they did (regarding the OS ver).
It was right, i deicded to expand the functionality to display the name of the mobile operator as the mobile displayed the name of the old one "Click GSM" which I found rather strange as that was the latest SIM and this is a new mobile, how come it cannot display what all other kind of mobiles display "Vodafone EG".
I looked and kept looking for resources about SIM access on msdn, ended up with some sweet sample that uses cellcore.dll
MSDN LINK
It reads what the sim has to say through some COM function call
private static extern IntPtr SimGetRecordInfo(IntPtr hSim, IntPtr
dwAddress, ref SimRecord lpSimRecordInfo);
I wrapped the old 2003 code in a new 2005 project, there is just one task to do, take the static main call to the new phone or project.cs file that is created to you by the wizard.
The new vs 2005 introduces a fact that you shouldn't put your logic code in a presentation layer, so there is a new program or phone file with each project from which you can call and initiate your forms. It has your main static function..
For now I will try to dig deeper and find classes that expose the network cells and how to measure the coverage strength at a certain point, I am so excited about the subject, it seems really working afterall.

Friday, November 18, 2005

Third OpCo in Egypt

Yes in a few weeks from now the bid will take place. The third OpCo according to NTRA will legally have the right to use both existing mobile operator networks to serve its subscribers. Existing subscribers of both MobiNil and Vodafone Egypt will have the right to move to the new operator while keeping their numbers. By the time that operator comes into action 3G will already be available by both and eventually by him as well. Customers finding such operator's coverage uptime and spread better than both current, his rates will be low and services shiny, they will both move off whilst keeping their numbers. I wonder what would keep them from doing that, one thing us being so innovative, creative, dedicated and working around the clock, supporting existing customers and creating new services and ideas with unbeatable prices, that's what we should do at vodafone, yes red, rock solid and restless, that's our moto. But wait a second, most of our people have already left to join Emirates new OpCo or the mobily one of Saudia, who's left to save the red thing. Umm well its us, small bones.
In the middle of all that, imagine if WiMax rules, all GSM and 3G crap would be of no use, as the new technology would be the cheapest and fastest available, most probably not just operators will resist it but governments as well, it won't allow them to spy on and tape in recording all messages and voice calls, due to it offering enormous broadband for each end user, they will require gega terra byte servers to be able to record the traffic and they won't afford neither that nor the applications that can classify and find their favourite criteria. The only good thing is that more and more people will have mobiles, more of which will know how to use and develop their lives at the expense of technology and research..

Beyond Space

I wonder why we invest so much in exploring space and trying to find extraterrestrial life forms on other planets and abadon exploring and discovering where our loved ones went after death, communicating with them and how they changed. There are already hundreds of theories and stories of seeing, meeting and having experiences with ghosts, if ressearch and science is directed towards it we might have an open communications channel that extends life regardless of the body. NLP is already here, we could develop that to make people communicate with their minds, learn very much better about each other. I believe there is one common raw format where we all take our experiences, knowledge, facts and emotions to, that format might be stored on millions of our brain neurons and cells, if it happens and we decode that format, we will be able to read every single detail each person had in his life, thus we will never lose valuable experiences nor mistake history and circumstances. We could prevent much of the emotional, financial and educational problems humans face based on studies that could be done on that immense sum of information. Failure of expressing and understanding human problems and needs is what takes us into years and years of frozen development and nothing but fixing recurrent problems.

Ladies and Germs

a Germ, that is how you feel when you try to vote in this country, how they mess with results and in a pathetic way. It is so miserable that they even fail to do it right and they lose. You could feel a germ too if you have to ride in a bus for over 2 hours each day to get to work, roads that has no order, engineering, nothing, a set of drivers who know nothing about driving, all they care for is to get their wheels in the empty space in the long queue even if they were getting off the next exit and that space was the far left shoulder. It was a while, i was busy serving or learning to properly serve the six million demanding customers of vodafone egypt. It is a challenge, you have to read and know tons of configuration details, many documents, meetings, sessions, mobile conference calls, and a lot of fights and arguments with vendors to get things done right. I finally managed to get my imate K-Jam, it is very sweet, it did cost me a lot, specially clearing it from the customs, it has a lot of neat features, most important of all it runs windows mobile that you could expand with over a thousand compatible PPC programs all over the web, you could do the development yourself using the new visual studio .net 2005 and .net compact framework 2 that u could install as well on it. Ma new car, VW Pointer, is going well, I did hit the 5000 KMs mark so I went to do my first service at the egyptian agent/dealer service center, they charged me 300 EGPs!!! I expected it to be free but they reminded me that they were a bunch of theives that cared less about quality, service and customer satisfication. It all goes with the germ concept, the same was what happened with the DHL K-Jam shipment, the DHL office didn't clear the mobile from the customs and called me saying come and take it yourself out of luggage city on your own responsibility, we could even advise you on how to hide it well!! I did pay the customs and sales tax official required funds for the government, but one thing was left, that was the NTRA pass, it is some miserable commission or committe our ministry of communications have, they claim they know everything and that no wireless nor network nor any kind of device that can connect to anything else could pass unless they approve it. As if they know more than the CE, FCC or other global standards. Their process is a deadlock, they wanted to check the mobile before releasing it from customs and the customs won't let you take it to them, so you would better ask your carrier to return the set back to seller or release it yourself at night from the barn. Life is not that bad, I had a nice roadtrip to hurghada with a friend, to test drive the car, do some speed and get to know that place, it has a long beach, many buildings, hundreds of tourists, we ate at macdonalds there, went around and got back. It was a 12 hours drive but It was worth it. Here comes the new telecom operator in egypt, the same happy NTRA has decided that they will give that OpCo the right to use the infrastructure of both existing mobile OpCos Mobinil and Vodafone for about a transitional year, till it builds its own network, the bad thing is that any new subscriber will find their coverage better than both existing providers that way, they will be traped, and we will have to serve not only our customers but their customer. How wise of the NTRA, seens we will all resign so and head to the new operator of Emirates or Mobily of Saudia :)