Menu

MT Browser Query

anaik100
2007-01-13
2013-04-22
1 2 > >> (Page 1 of 2)
  • anaik100

    anaik100 - 2007-01-13

    Hi Gav,

    I am trying to understand the MTbrowser projects funcionality..
    Here is what i am clear
      - when the desktop version loads it scans through your local machine, to detect the browsers on your machine
      - you can open  a single URL in different browsers at the same time using this tool
      - also you do have entry in registry whenever installation happends of this product

    now i want to understnad the funcionality of different functions.
    Need your help in this
    - First from the tools menu
          - Colur checker
          - ASCII converter
          - px to em %
    there must be some algorithm used for this...

    Thanks
    Amar

     
    • Gav...

      Gav... - 2007-01-14

      Hi Amar,

      Not sure if you have access to the SVN repository yet, how did you get on installing Subversion ?
      Anyway , as you know the C++ Code files are in there.

      Anyway first of all ...

      The Color Checker :-

      The code itself resides mainly in CodeExamples.cpp. I got the algorithim from the WCAG and confirmed it at the Juicy Studio Site. http://juicystudio.com/article/luminositycontrastratioalgorithm.php

      So take a look at the Juicy Studio site link above to see what I have implemented. Take a look at CodeExamples.cpp to see how I have implemented it if you need to.

      The important parts taken from Juicy Studio are thus :

      <quote>
      Color brightness is determined by the following formula:

      ((Red value X 299) + (Green value X 587) + (Blue value X 114)) / 1000

      Note: This algorithm is taken from a formula for converting RGB values to YIQ values. This brightness value gives a perceived brightness for a color.

      Color difference is determined by the following formula:

      (maximum (Red value 1, Red value 2) - minimum (Red value 1, Red value 2)) + (maximum (Green value 1, Green value 2) - minimum (Green value 1, Green value 2)) + (maximum (Blue value 1, Blue value 2) - minimum (Blue value 1, Blue value 2))
      </quote>

      Next, the ASCII Converter :-

      This is currently a dummy placement link, I have not implemented it yet.
      I have perhaps incorrectly labelled this tool. What I intended to do here is create a HTML Character Entities converter. It is just for pure convenience to the web developer and is an extra tool to
      make the program more worthy of use.

      So a Web Developer could choose or type in say &#174; and get the 'R' Registered symbol. Or the other way
      round they could type in the less than symbol < and get &#60; etc etc, a link to the full table could also be provided.

      Last, the px to em to % converter.

      Another tool to help the web developer. As stated , it converts between the three types of ways of providing sizes etc for a website layout. It should help those wanting to convert a pixel based layout structure (which produces a fixed layout) to a more fluid design using either ems or percentages.

      Designers have in the past used pixels for both specifying the size of the font used and also the widths and heights of divs or tables. (I have not used tables for designing websites for many years, but there are still the majority that do unfortunatly)

      In my opinion, which I am thankfully not alone, designers should really use ems for font sizes and percentages (and in some cases ems again) for layout divs.

      The algorithim for this conversion is actually quite straight forward.

      Most browsers have a default font size of 'Medium' , which is 16px.
      SO all layout <div>s <h1> etc etc are based on this as a starting point.

      1em is based in this also, so 1em = 16px.
      100% is also the same as the base font size of 16px
      Therefore :-

      16px = 1em = 100%

      Everything else is calculated from this, taking into account the values of any parent containers.

      The MTBrowser 'px to em to %' converter provides an example web page layout and uses this to give examples  of how inheritence of parent containers alter the effect of using each. Designers can then alter these values in each <div> container to see the overall effect it has on the rest of the design.

      Those curious, should download the program in its current C++ derived executable form and see for themselves. If you do not have SVN installed, the executable version is on the download page using
      the link at the top of this page.

      A brief example

      1. The <body> tag of a web page automatically inherits the browsers default font, usually 16px.
         A <h1> tag as a direct child of <body> also inherits this 16px by default.
         If <h1> were given a value of 125% then it is the equivelant of 1.25 ems or 20 px

         <div1> is a direct child of <body> and <div2> is a child of <div1>

         <div1> is given a value of 0.75em (Therefore being 12px or 75%)
         <div2> is also given a value of 0.75em , meaning that because it inherits from <div1> then
                the result of <div2> is in fact that it will be 9px.

      Hope the above helps, keep the questions coming. I hope other devs will arrive soon so that a java/XML platform independent version of this program can come true.

      Anyone else out there want to work on this, in whatever way you can, let me know. If anyone has ideas for improvements or new ideas for new tools etc that can be included let me know or post a new message here.

      Thanks

      Gav...

       
    • anaik100

      anaik100 - 2007-01-17

      Thanks for the response. There are lot of features in this tool.
      But i feel the first step should be to prepare a basic functionality tool and then keep on adding the features.
      Since you have designed , can you please put a plan which outlines the idea that we need to do implement basic features and create a working model.

      once we know what to implement then we can start talking about coding and design.
      Do you agree?

       
      • Gav...

        Gav... - 2007-01-21

        Hi Amar,

        Yes, I think all the extra features mentioned so far can be ignored for now until the basic core program is up and running, these can be added afterwards.

        The core functionality should consist of just being able to just these things :-

        1. - Program detects for locally installed web browsers on users computer.
        2. - User can then choose any or all of these browsers.
        3. - A user types in a web page address URl or navigates to a local web page to use.
        4. - This web page then opens up in all the chosen web browsers. (from step 2)

        That is the core functionality and the initial aim of this project.

        In my original program, all browsers opened up in their own space, if the browsers could
        be opened up inside the MTBrowser program that would be better, but not essential at
        this stage. All other features etc can be added on after this is complete, either as
        add-on features or as part of core features of a newer version.

        The program I created originally lacked cross-platform capabilities, so the aim of this
        version is to make sure it runs on as many systems as we can. We can get testers to come
        in later on and help with the testing of this.

        I think the way to start is for one of you Java developers to make a start from scratch,
        using the previous C++ version as a basis for the outcome needed. I will be on hand
        initially just to answer any questions as to what is to be implemented. Once some
        code has been checked in to the SVN repo, then I may be able to help a little more
        with coding ideas.

        Basically then people, just make start and ask away when you need to.

        Gav...

         
    • aspiration

      aspiration - 2007-02-27

      Dear Gav

      Can you plz send me the C++ code for searching the installed browser?

      I have installed the SVN. After some searching I understood that MDIChild1->SearchForInstalledBrowsers() is being used for this. I did not get the body of MDIChild1->SearchForInstalledBrowsers().

      Pls explain for my understanding.

      Thanks Aspiration.

       
    • Gav...

      Gav... - 2007-03-01

      Oops, sorry about that, seems a few files were being referenced from another directory and so got missed in the initial commit. I have now added the missing files. (MDIChild1 is actually called MTB2Child).

      toxixzone also deleted some unneccessary files too, so please do an 'svn up' to get upto date.

      When anyone is ready to upload some new code, please create a new branch and upload it there, if you are not successful in creating a new branch (in the branches sub-dir) let me know and I'll create it.

      Thanks

      Gav...

       
    • Gav...

      Gav... - 2007-03-01

      Sorry about spelling mistakes

      MTB2Child should be MTB2Child1

      toxixzone should be Toxiczone

      Gav...

       
    • Fekri

      Fekri - 2007-03-01

      Hey guys
      My name is Fekri kassem, I was added to the list, and I will be working with you on this project. Looking forward to work with you,

       
    • Fekri

      Fekri - 2007-03-02

      Hi,
      I look at the code in C++, and It uses windows registery to get the information about the browsers installed in the computer. I think this should stay the way it is. We could just use the same code that we need to work with windows. So we could check what operating system is our code running under and then use the part of the code that works with that system. For example if it is windows then we could just use the same C++ code embedded to jave code that will get us the paths of all the browser. If you guys think this is a plan then I could start gather information about getting the browsers installed under linux, I am using ubuntu and I could test them in both my mechine and unix mechine.
      Let me know if this is a plan, so I could work on and if you guys think otherwise, then let me know so we could start working on it. I am thinking the first step is to be able to find the browsers installed in as many systems as we can, windows, linux, mac and then work in the GUI which is an easy because we will use java and it will be the same code for all the operating systems
      Fekri

       
      • Gav...

        Gav... - 2007-03-05

        Hi Fekri,

        Sounds like a good plan to me, carry on :)

        Gav...

         
    • aspiration

      aspiration - 2007-03-04

      Dear Gav

      I got C++ code of SearchForInstalledBrowsers. The current code is looking in the registry key "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\&quot; for all the browsers.

      I have one question. Does all the browsers which writes to the registry, writes to the App Paths registry key? In case any browsers writes to some other path in the registry (i.e. other than App Paths), we may miss those browser. Pls explain how do we auto detect those browser. Plz share yr experience on this.

      Thanks.

      Aspiration

       
      • Gav...

        Gav... - 2007-03-05

        Hi Apsiration,

        In my experience most programs, whether it is a browser or not , store their installtion location in this key.
        All the browsers on my system, with the exception of Opera 9 Beta, have stored their values here. I will download and install a commercial version of Opera and see where it stores its value. I am sure previous versions of Opera stored its value here so I am not expecting any different.

        What we will need to concider in the future, whether we try and do it now or later it does not matter to me, is finding out the version number of the browsers, so we can detect if users have different versions of the same browser installed. This is not a unique situation for web developers who test in different version of the same browser. The code to do this on windows is in the source code somewhere, I'll point in out later.

        If we find that some browsers store their values elsewhere, then we can expand the search to include these locations if neccessary.

        Gav...

         
    • aspiration

      aspiration - 2007-03-04

      Dear Fekri (cc Gav)

      Thanks for yr mail.

      I agree with yr approach. Pls proceed for gathering information for detecting information on Linux etc. In case you are thinking of any another way for searching for installed browser other than searching the whole file system. Pls share yr idea.

      I will write the code in Java to read the registry and detect the current operating system.

      Aspiration  

       
    • Fekri

      Fekri - 2007-03-05

      Hi,
      I have gathered some information that detects the browsers installed in most of linux machines, include ubuntu, kubuntu redhot and some others. The way it works is there is a command that when your run it it gives you a list of all the programs installed, I have written a small shell script and tests it in my machine and it seems it is working, it gets all the information returned by this command and filter them to look for the browsers, it detects firefox, mozilla-browser that are installed in my computer and it runs fast too, much faster than the one in windows. this is the command "dpkg --get-selections", another command is "rpm -qa". They both work so we need to just check which one is supported by most of the operating systems and use it. I am going to write a java class that will run this script from within java code and checks for the given browsers, if they exists then we could run another command to get us the path, which i do not think we need in this case, because in linux, you do not really need to give all the path to lunch a program. It seems that unix machines do not have this command, most of linux if not all have it. Once we get it for linux, we should start looking a way to do the same on unix, you could guys gather information and let me know if you find something new.
      Fekri

       
    • Fekri

      Fekri - 2007-03-19

      Hey guys,
      I have written a java class that execute a shell script and I change the shell script that i use to find the browsers from using this dpkg --get-selections command which is not supported by most of linux system to using which which comes with almost all the linux and unix systems. I will add the code that i have as soon as i figure out how to add it using svn, so you guys could add to it and test it .
      Fekri

       
      • Gav...

        Gav... - 2007-03-20

        Hi Fekri, what part of SVN are you stuck on?

        I have cleaned out trunk altogether and so is empty, you can upload into trunk your code if you like.

        You will need to goto your 'mtbrowser' local directory and do 'svn up' to bring your local working copy upto date and be the same as on the server here -- everyone should do this now and regularly.

        To upload your code into trunk again from your local mtbrowser directory :-

        1. cd into 'trunk' directory.
        2. Put your code here.
        3. 'svn add' to add your code files to the svn working copy.
        4. do svn ci -m "Your commit message goes here"
        5. Thats it, your ocde should now be in.

        Let me know what happens.

        Gav...

         
    • Fekri

      Fekri - 2007-06-09

      I have add the code I have to svn, if you could look at it and see what should be changed, we should also try to see if it works in other linux/unix systems. I also need to know what the next thing we should start working on.
      Fekri

       
    • tpriyan

      tpriyan - 2007-06-11

      Hi

      I found a piece of java code that detects the installed OS

      System.getProperty("os.name")

       
    • Fekri

      Fekri - 2007-06-12

      We could use this probably later if we decide to make one project that is cross platform instead of having separate downloads for each platform.
      I am going to start working on a Demo GUI in java similar to the one we have in C++
      Fekri

       
      • Gav...

        Gav... - 2007-06-17

        Cross platform is a goal we need to aim for certainly, but getting it working in the platform of your choice is the best first step.

        The demo GUI you are working on, will this be a linux only version for now?

         
        • Fekri

          Fekri - 2007-06-17

          Hi,
          The Demo which I am working on, I am about to start working on, because I was working on detecting and starting browsers. Every Things that I am working on should work on any platform as long as you have java installed. We might though still need to figure out how are we gonna detect browsers in windows and others platforms, but the GUI should work fine in all of them "supposedly" because I am using java.

           
    • Fekri

      Fekri - 2007-06-15

      Hi, Guys
      I have added some code that will start the browsers, it worked for me and start the three browser that I have installed, But I have a problem adding the code to svn, I delete the findbrowserslinux folder and rename it to something else so I could use packages and I tried to add it and it issues this error
      svn: Working copy '/home/fekri/Projects/mtbrowser/trunk/findbrowserlinux' is missing or not locked
      I do not know how to delete it from svn because I am not using it anymore I rename the folder and the files
      Fekri

       
      • Gav...

        Gav... - 2007-06-17

        Hi Fekri, I have a machine that I have set up with Ubuntu OS.

        Can you tell me the steps I need to do to run & test the code so far -- I am from a Windows background so do not know where to start with what you have done so far. Hopefully when a GUI is implemented it will be much easier.

         
        • Fekri

          Fekri - 2007-06-17

          Hi, ubuntu is cool
          After you get ubuntu working, you need to install the Java compiler jdk, I do not think it is installed by default in ubuntu, you might already have the jre, you could test by trying to run the commands javac and java.
          I am using java 1.6, if you are using an earlier version, you might need to recompile all the classes. What you could do is installed eclipse, it will work fine. What I have now is a few classes that will run external script to detect browsers installed and other script to start the browsers. This works in for me and it should work on most linux and unix computers, because I am using which command. I will start working on the Demo, but if it is possible that you could give me a design that I could follow. Like how should we organize our code. How to separate them into different classes. I could work fine now, it just I want to see if you have a better way other than the one I have in mind. 
          Fekri, 

           
    • Fekri

      Fekri - 2007-06-15

      I did manage to add the files, but I could not delete findbrowserlinux though, I am not using anymore I will delete it as soon as I figure out how, Could you look at the code, if you have time
      Fekri

       
1 2 > >> (Page 1 of 2)

Log in to post a comment.