Raba - Defend your code RSS 2.0
# Saturday, April 29, 2006

A few days ago I start thinking about a new way to control our web site window size.
In our site there is a main window which hold the most important data. For editing the data or view more data: you can choose your subject in the menu and it will open a new page with the full details.

The common sense says that the window should set its own width/height for best fit, with minimum scrolling, but the reality isn't that simple because this page can open either as a regular window or as a modal window and the parameters are different. There is another problem, changing the window size in run-time (in the body) is very ugly (you can see the window re-sizing itself).

The other way is working with JavaScript file which holds the windows parameters and the opener will use this parameters for opening the wanted page. The good thing in this idea is that the menu will know all the sizes and open the windows in the wanted size (the one defined at the JS file). But here we have another problem that Server files (.cs) that writing JavaScript (from server) should know this JS file and the names of the parameters, can cause broken links. also, links to my site that sent via email won't open in the wanted size.

another idea is to use XML for server and at the first time (application) create dynamically the JS file with the parameters, still can cause broken links from (html or other JS) and this can cause a strange problem because we are connecting our files to JS file that is not created yet, I know it will work because it is happening on run-time, but it is still strange. In here we still have the problem for links to my site that sent via mail.

For the mail issue, lets say that every link should go first to my main page, and only their the main window will open the wanted page for you, so we can set the window size via the main window.

I am searching for other implementations to the JavaScript file that holds the sizes for all windows.
Is there a better way for doing this?

Saturday, April 29, 2006 2:50:31 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] - Trackback
.Net | Scripting Technology | Software Development

I've wrote a huge article about my last two months at work, this article should be the GIS bible for beginners, but when I submit the article, it redirected me to an access denied page, cannot track my post and cannot go back to find my article.

don't worry I'll write this again, but probably in small chunks.

Saturday, April 29, 2006 12:26:58 PM (GMT Daylight Time, UTC+01:00)  #    Comments [4] - Trackback
GIS | My Site

Have you ever found your self looking at a site and trying to learn from their JavaScript or HTML?
most of the time is written without indentation at all, there are some sites that also rendering their JavaScript/HTML in one line.

So I found this great site for indenting to your standards:
http://www.prettyprinter.de/index.php

Saturday, April 29, 2006 12:16:28 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] - Trackback
Scripting Technology

That was the most tedious 2 months I've ever had and damn I love my life.
First of all, I would like to thank to all of you that look for me and send me those lovely emails.
Second, I should explain those two months, I've finished my first semester of first year (MSc. in Computer Science), I had my exams (the grades are pretty well, thanks for asking), I've also worked on a big project about searching the web using Text Mining, that was very interesting.
While I was writing my project (.Net of course) I've started my second semester and I was flooded by new homeworks in Algorithms and Computer networks, and it never stops, so I am a bit busy this year.
Lastly, At Job, we've start checking out the coolest thing ever, GIS Server (comprehensive platform for delivering enterprise geographical information systems), I would write on it further more at my next posts. The great thing is that we are pioneers of this tool in Israel, and even around the world there is a very little knowledge.

So, I am back,  stay tuned.

Saturday, April 29, 2006 8:13:25 AM (GMT Daylight Time, UTC+01:00)  #    Comments [3] - Trackback
Life | My Site

# Saturday, March 04, 2006

A dear friend of mine, Pasha Bitz, is suffering from a strange behavior of unwanted comments,
I couldn't find yet the source for this strange-meaningless-comments but what I did found out is that Pasha doesn't use the captcha component for preventing malicious robots hurting your site.

Here is an example for this robot's work.

I hope I'll find this robot and hack it down.

Saturday, March 04, 2006 11:11:39 AM (GMT Standard Time, UTC+00:00)  #    Comments [1] - Trackback
Life | My Site

# Friday, March 03, 2006

Finally I've got importance ranking by Google (2/10).
You can see this in your Google Toolbar.

I've tried almost everything, but my main advice to you is to be patient.

Thanks Google.

Friday, March 03, 2006 3:10:42 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] - Trackback
My Site

# Tuesday, February 28, 2006

While reviewing Yossi (new teammate) code I've seen something strange, it looks almost like this:

 

  string formatStr;
  formatStr
= String.Format("Hello {0}",name);

 

I ask him for explanation and he gave a wonderful story which almost convinces me that this one isn't so bad, it sounds like this:

·         This is better than concatenate two immutable strings

·         This is more readable.

So I thought for a second and changed the code to look like this:

 

   string concatStr = "Hello " name;

 

But he insists that this one is bad, concatenate immutable strings.

So here is my simple explanation:

1.       With human-readability I won't argue, it is (sometimes) very individual.

2.       My code isn't about concatenating it is about init strings and for that main reason the compiler would change this code to one large string (known at compile time). (You can see the Ildasm).

String.Format implementation remark:

·         Be careful, while calling string.Format it creates StringBuilder and do its stuff - do you really want it?

I know that most of you screaming out loud (waaaa.... or just saying: OK and what with 10 or even more concatenation)
you probably wrote script generation which look like this:

 

public string WriteHtmlMessage()
{
   
return "<div>" +
           
"I would like to add <b>" + name + "</b>" +
           
"<br/>" +
           
"to my team as a <b>" + job + "</b>" +
         
"</div>";
}

 

And yes this is an init statement so it is better (performance reasons) writing it like this then using String.Format or even StringBuilder.
Even if the compiler will use the Concat method it will be used with the array parameter which is still better than creating String.Builder.
Why is it better?
Because the size of the array is known at compile time.

Conclusion,

·         The compiler will translate the init concatenation to a long string (like my first example) when all the strings are known at compile time (the parameter was const).

·         The compiler will use concat method (with arraylist, not the poor pairs concat) when the number of strings are known at compile time (last example).

In both examples this concat is actually faster than StringBuilder or String.Format.

So, next time when you concatenate specific (known) strings do it in the same init instruction.

Tuesday, February 28, 2006 11:09:10 AM (GMT Standard Time, UTC+00:00)  #    Comments [2] - Trackback
.Net

# Monday, February 13, 2006

There is a time in every persons life when he needs to read a file which has the *.ps extension.
Most of the people I know download the useless programs: AFPL GhostScript and the GSView just to read or edit the cursed *.ps file.

I hate downloading programs which I am gonna use once in a life time (even 10 times drives me crazy).

From now on convert your files online through this website.
All you need to do:

  1. Upload the ps file
  2. press convert
  3. download the new pdf file.

enjoy reading.

Monday, February 13, 2006 12:02:29 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] - Trackback
Life

# Thursday, February 09, 2006

Last week Avi (my team leader) and I were in a meeting with Systematics the representatives of ESRI in Israel.
We ought to ask some questions about the GIS Server, and I will bring here some of the answers we've got:

  1. The GIS Server 9.1 won't work with the SDE 8.3
  2. The ADF(Application Development Framework) for .Net will help us to develop GIS applications more productively (using my favorite drag&drop action).
  3. While the ADF is very useful it is also very simple, most of the wanted features you would have to program by yourself, such as saving the maps history, calculate the distance between two (or more) points which are not in the same extent. (those two examples were implemented in our systems today and won't be provided in the ADF Controls functionality)
  4. The ADF.Net won't work with the .NET2.0, we should wait for the next release.
  5. The GIS Server based on the ArcObject model, which give you more functionality (the same as we have in the client) such as editing.
    No more activeXConnector problems.
  6. The performance in the GIS Server is not better than the ArcIms, which are both very slow (you can see it in the examples below)

Here are some demonstrations of the products:

  • An example of caching your maps,
    I loved the idea of using the cached maps (My Maps) on the right.
  • Simple example of tool tips on map (this one is damn slow, while we have only 4 layers).

   Those two still suffer from the known issues of bad performance, 
   even when they are only small projects.

Thursday, February 09, 2006 4:47:04 PM (GMT Standard Time, UTC+00:00)  #    Comments [2] - Trackback
.Net | GIS

# Thursday, February 02, 2006

I've added my Human-Debugger icon to my main page
so from now on - you can see the HD Icon on the left hand of your address bar and in your favorites.

All you need to do to enjoy my icon:

  1. Add my main page: the www.human-debugger.net to your favorites.
  2. I recommend to close the browser and re-open it (some of the browsers need this one for
    showing the icon).
  3. Browse to your favorites and view the link to my page. (it is already showing the new icon)
  4. Browse to the link and that's all - you can see the icon in your browser address bar.

Enjoy my new icon.

Thursday, February 02, 2006 9:03:04 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] - Trackback
My Site

# Sunday, January 29, 2006
Today, while I was sitting with Matan, a new programmer at our team, for a code review - I saw one of the worst practices that each new programmer and even experienced programmers are dealing with during their coding/reading in .Net, the Exception rethrow mechanism. I would like to show here two code examples for best and worst practices:
Sunday, January 29, 2006 11:44:02 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] - Trackback
.Net

At my Team we work on different applications simultaneously, each application live in a separate solution.
The common denominator between those different solutions is one solution which hold some WebControls, scripts (for the web controls) and some other methods which serve the BL and Dal.

I am gonna talk about the WebControls and their scripts.
As you can understand, each application (solution) holds a reference to the WebControls DLL, but What are we going to do with the scripts? 
I prefer to write a pre-build event script which will deploy (simple XCopy) the scripts to the Inetpub and than each application could use those controls without copy the scripts to their private directory hierarchy.

Yesterday we start using another Solution, IEWebControls (which most of you probably know their controls such as tabstrip, treeview etc.), while installing the IEWebControls it will create a directory on your computer and after running their build script it will copy the scripts into the Inetpub.

We made a discussion about how we should use the the DLL and the scripts so all the programmers could make a simple get from the VSS, and every one could use those WebControls, there are two different opinions:
1) each programmer should make his get (only for the scripts) from the source-safe into the Inetpub directory (the references to the DLL is already exist in the relevant solutions).
2) each programmer should get the full solution and make a build, the build will cause the XCopy for the relevant scripts to the exact directory.

I prefer the second, because it will be exactly like our WebControls solution which I describe earlier,
also it will be similar to regular deploy to our the servers, finally I think that this is the right logic for all changes (if exist - DLL/scripts) to take place at one click (build).

I would like to hear your suggestions, What do you think about my preferred way.

Sunday, January 29, 2006 9:59:17 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] - Trackback
VSS

Archive
<April 2006>
SunMonTueWedThuFriSat
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2012
Shani Raba
Sign In
Statistics
Total Posts: 145
This Year: 0
This Month: 0
This Week: 0
Comments: 97
Cool Stuff
Add to Technorati Favorites
Themes
Pick a theme:
All Content © 2012, Shani Raba
DasBlog theme 'Business' created by Christoph De Baene (delarou)