Al Pascual



Geo RSS
Geo Twitter Timeline

Blogs I read

<December 2008>
SunMonTueWedThuFriSat
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910
ESRI Sample Flex Viewer with Source Code

Esri posted at the code gallery a sample of their Flex map viewer. It’s a must have.

“This sample viewer was designed to showcase some of the core capabilities of the ArcGIS Platform through a simple, modern, Web2.0 style user interface. This sample may be used in compiled form with simple modifications to its configuration file, or its source code can be used by application developers to further explore and understand some of the best practices and programming patterns of the ArcGIS API for Flex.”

Download it here

Cheers

Al

Posted from http://weblogs.asp.net/albertpascual

Posted: Dec 03 2008, 11:42 PM by albert | with no comments
Filed under: , , ,
Another California social network goes down.

I received this email from Pownce, another social network, microblogger engine:

“We are sad to announce that Pownce is shutting down on December 15,
2008. As of today, Pownce will no longer be accepting new users or new
pro accounts.

To help with your transition, we have built an export tool so you can
save your content. You can find the export tool at Settings > Export.
Please export your content by December 15, 2008, as the site will not
be accessible after this date.

Please visit our new home to find out more:
http://www.sixapart.com/pownce

Our thanks go out to everyone who contributed to the Pownce community,

The Pownce Crew”

Why do you think they didn’t succeed? What other micro blog engines and social networks are going down in this economy? Twitter the first micro blogger with a horrible architecture and horrible performance is the one that survives over the better ones. I guess than being the first one counts.

Pownce had much more features than Twitter, yet never took off. You still can follow me at Twitter here.

Cheers

Al

Posted from http://weblogs.asp.net/albertpascual

Posted: Dec 02 2008, 11:42 PM by albert | with 1 comment(s)
Filed under: , ,
Links of the Month. November 2008.

In my absence many things has happened in the blog world, that I need to catch up. Those post were interesting enough for me to want to share them with you.

ASP.NET

Scott Gu "released" the new "free" charting control for ASP.NET Very overdue yet now is going to compete with Telerik and Dundas for the market.

Silverlight 

An overlook to Silverlight 3.0 by Scott Guthrie. All this are more is coming on the next released of Silverlight

Encrypt your AJAX communication using Silverlight scriptable methods by Michael Schwarz

Microsoft Live

Microsoft Live training by Woody Pewitt

SubText

SubText 2.1 released … finally. By Phil Haack

GIS MVC?

Geolocating in MVC by Scott Hanselman using HostIP api

Test Driven Design

A fantastic idea with all the details here at Domain Driven Design by Lee Carter

Cheers

Al

Posted from http://weblogs.asp.net/albertpascual

Back from a Mexican vacation, cleaning up inboxes.

My apologies for all the people that didn’t know I was going in a 2 week vacation to Puerto Vallarta Mexico. I got many emails from you guys that didn’t know. I’ll be replying my emails in the order arrived.

IMG_2605[1]

I had a total family vacation. I spent every waking hour with my 3 daughters. What an amazing time, I don’t get to spend all the time I really want with my children. I only used my iPhone as a phone, the wireless or data plans were way to expensive.

I’ll be posting a detailed trip post next week. This is our 3rd time in Puerto Vallarta, a great amazing place to explore if you know where are you going.

Cheers

Al

Posted from http://weblogs.asp.net/albertpascual

My first article on ASP.NET Pro thanks to INETA.

On the December issue of the ASP.NET Pro magazine you’ll find my article about maps I wrote for them, a great tutorial to report your data in a geographic matter. I really hope that will help many people start using that kind of analysis and reporting for making better decisions.

 

ASP.NET Pro always being the leader in ASP.NET articles, to receive the magazine you can subscribe at http://www.aspnetpro.com/Members/subscribe/ComponentOne.asp

 

Tuesday, November 11th I’ll be at the Inland Empire .NET User Group giving a presentation, I hope you can join us. http://www.iedotnetug.org/UG/

 

I’ll be presenting GeoTwitter as well as I would like to keep bringing the message to the community about the Internet Social Networks and how important is to share information on this age where is almost impossible to keep up with technology.

 

Hoping to meet lots of people there, I hope as well that I can use the AT&T Air Card, last time I was there, I had no service on my iPhone.

 

Cheers

Al

 

Posted from http://weblogs.asp.net/albertpascual

Posted: Nov 09 2008, 07:41 PM by albert | with no comments
Filed under: , ,
Moving Community Server to the Cloud

Next pet project is to move my blog on Community Server to the Cloud. I spend too long making sure my database size does not go over 500 MB, the size limit on my hoster. So once every 3 months I have to do some clean up of the database:

DELETE FROM cs_statistics_Site

DELETE FROM cs_Visits

DELETE FROM cs_Exceptions

DELETE FROM cs_EventLog

To keep the database from going over 500 MB, those above are the tables that keep growing without impacting my blog posts. I have to options, move to Telligent Graffiti  or to move my database to the Microsoft Cloud. I don’t think that there is a tool to convert CS2007 to Graffiti.

If I decide to move to the Cloud, this is a bookmark to remember to set up a computer with the Azure SDK for VS2008.

What do I need.

  • Windows Azure SDK
  • Windows Azure Tools for Microsoft Visual Studio

    Where to learn.

    http://blogs.msdn.com/cloud/archive/2008/10/27/getting-started-windows-azure-tools-for-microsoft-visual-studio.aspx

    I recommend to subscribe to http://blogs.msdn.com/cloud and start using the cloud for all your data instead of keeping using hosters databases.

    What's next?

    I need a token to get access to the storage. Anybody?

    Cheers

    Al

  • Posted from http://weblogs.asp.net/albertpascual

    GeoTwitter.NET Editor for GeoRSS updated

    Finally this weekend I updated the Editor on the GeoTwitter as promised on the previous post. The GeoTwitter Editor is a GeoRSS creator on the web. Allows users to share geographic information fast and easy. You can find the source code for GeoTwitter version 1 at Codeplex/geotwitter

    I have been extremely busy at work and at home to spend the time to work on this project. This is sad as this is a extremely fan project to play with, some people like to play video games, I like to code for fun. GeoTwitter was build using ASP.NET 3.5 and lots of LINQ to SQL classes. All communication to the database was build using that great technology. If you would like to learn how to use LINQ to Sql you can read this post. The best practices post can be found here.

    The new improvements to the GeoRSS Editor.

    • Users can store their GeoRSS feeds for as long as they want. The grid with all feeds will be stored at the end of the page, not editing yet.
    • You can add a title and description to each geometry added into the map, distributing your georss will make more sense.

    Adding Attributes to your Geometry. After adding the geometry on the map, you’ll be asked to add a title and a description to be associated to the geometry.

    image 

    Consuming the GeoRSS created in Google Maps. You can use any map that can consume simple GeoRSS. The title and description will be shown at the tooltip.

    image 

    Find the created geometry under the map. All GeoRSS feeds link will be found at the end of the page, all users share the same feeds, they are public to any user.

    image

    How to create a GeoRSS Feed?

    Using the GeoTwitter editor is pretty simple, you can follow this exercise:

      1. Go to http://geotwitter.net/editor.aspx
      2. Click at Point and click the map, you’ll be ask to add the Title and Description, then click the Submit button.
      3. You can repeat step 2 per geometry. Add a Polygon.
      4. When finished, click the last button on the top of the page “Save"”, give a unique name and click the right hand side button “Save”
      5. The browser will redirect you to the GeoRSS.image
      6. Copy and paste the link to the Address book search at Google Maps:

     

    I am still looking for suggestions and as well to discover bugs. This is one project that will never finish, I keep adding suggestions from users every month, please, let me know if you would like to add anything else.

    Cheers

    Al

    Subscribe to my RSS Feed.

    Related Posts

    Posted from http://weblogs.asp.net/albertpascual

    Going to vote No on Prop 8. Evolution will eventually take over.

    This is my first post about anything that is not related to technology; I have never done that in the last three years of blogging. I was urged to do so now by my disappointment in seeing a community in California so no accepting of progress and evolution. It has been a long time - 88 years, since females were given the right to vote, and a long time, also since black people were given equal rights.


    As a people, we have come a long way.  We invented technology and we have been able to improve our skills with each generation. We have come a long way in understanding that justice and freedom are the key to success; they are, in fact, what our country has been built upon.  We should respect everybody's freedom to choose their own destiny and future.

    Every day I'm teaching my children to respect everybody, and embrace their differences.  I will allow them to choose their path in life and let them go on their own. Our family likes to travel all over to meet different people and experience different cultures, so that our children see that there is no right or wrong.  It is unequivocally wrong if one person's freedom finishes when another's freedom begins. In other words, no one person's freedom should encroach upon another's.

    It saddens me that we are here in 2008 still discussing if gay people should have the same rights as other people.  In California we will be voting on Prop 8, which would overturn the right of gay people to get married.  This kind of proposition should, in this millennium, not even be discussed.  Everybody should have the right to marry whoever they want.  We should not discriminate against any race, religion, or sexual orientation.  By doing so, we have proven that there is no equality under the law in California - for anyone.

    I know that progression has been made, but evolution is coming slower than I thought.  Yet in 10 or 20 years, this issue will be resolved once and for all.   Evolution will eventually take over and ensure that everybody has the freedom to marry whoever they want.

    What, you don't believe in evolution?  Do you think that 20 years ago we could have had a black candidate for president?

    Soon I'll go to vote No on Prop 8, knowing that the outcome does not matter for the course of history because in 20 years, this will no longer be an issue. The outcome will only matter for me, knowing that I did the right thing to help protect individual rights.  I also now know that I was naive to believe that everybody was equal under the law, because we are not there yet.

    Cheers
    Al

    Posted from http://weblogs.asp.net/albertpascual

    Posted: Nov 01 2008, 09:55 AM by albert | with 23 comment(s) |
    Filed under:
    Creating a SharePoint Web Part Step by Step

    This is the first time I develop for SharePoint, something that I wanted for a while, yet never got a project to do so. I have been a SharePoint user for many years, normally because all companies I have worked they use it as their document repository, “link provider”.

    There are a few steps that are difficult to remember in order to create get a developed webpart installed and running, so I created a list for me to follow, best place to add it is my blog.

    I would recommend the book “Inside Windows SharePoint Services 3.0” I found it very useful as well as very well written, Daniel Larson is a great technical writer.

     

    A new book from this him is coming up in November 24thDeveloping Service-Oriented AJAX Applications on the Microsoft Platform” I can share with you that I read it, many times, and now is my favorite book of 2008.

    Going back to SharePoint, below the simple steps to develop a webpart for SharePoint 2007.

    Step by Step

    1. Create a new project class library, inherit the controls from System.Web.UI.WebControls.WebPart
    2. Each control you create needs to overrride the method Render: protected override void Render(HtmlTextWriter writer)
    3. Create a snk file and compile the dll.
    4. Install the dll into the computers GAC by dragging it to c:\windows\assembly
    5. On the Sharepoint web.config add a new SafeControl tag
    6. Then on Sharepoint as administrator go to Galleries and add a new webpart.

    Now any user will be able to use the webpart.

    Related posts

    Walkthough from MSDN

    Gu's release

    Tam Tam Weblog tutorial

    Cheers

    Al

    Posted from http://weblogs.asp.net/albertpascual

    Zip Compressing ASP.NET Session without changing your code using a Session provider.

    Scott Hanselman had a post last week to zip your Session state. a great idea I thought to be able to save memory on the computer. Yet I didn’t want to change all my source code to use another class to do so, a nightmare to track all the Sessions in every application, or worse when you don’t have access to that source code.

    So last weekend I work on a Session State Provider that allows me to intercept every call to the Session State and compressed when set or unzip when retrieve.

    The Session State provider will call my method by adding this to the web.config on your website:

    <sessionState cookieless="true" regenerateExpiredSessionId="true" mode="Custom" customProvider="ZipSessionProvider">
        <providers>
           <add name="ZipSessionProvider" type="ZipSession.ZipSessionProvider"/>
        </providers>
    </sessionState>

    This tells the web application to send all Session request to my class ZipSessionProvider that wraps Scott Hanselman’s class. There are 2 methods that are important on the provider, to set the session and to retrieve. So users don’t have to change the code to use the Sessions on their web applications:

    Session["Something"] = "Hello World";

    Insert a Session object.

    public override void SetAndReleaseItemExclusive
                (HttpContext context, String id, SessionStateStoreData item,
                object lockId, bool newItem)
            {
                for (int i = 0; i < item.Items.Count; i++)
                {
                    string sKey = item.Items.Keys[i];
                    Zip.Session[id + sKey] = item.Items[i];
                }
            }

    The system calls the SetAndReleaseItemExclusive to set Session variables. As when you override the Session state, you’ll find you won’t get a Session initialize for you. That’s ok or better, as we’ll use the Cache object to store our session state, more control over that. The method above will store the sessionID as well with the Key for easy retrieve later on.

    Retrieve a session object.

    public override SessionStateStoreData GetItemExclusive
               (HttpContext context, String id, out bool locked,
               out TimeSpan lockAge, out object lockId,
               out SessionStateActions actions)
           {
               actions = SessionStateActions.None;
               lockId = null;
               lockAge = TimeSpan.MaxValue;
               locked = true;
               SessionStateStoreData temp = new SessionStateStoreData(
                       new SessionStateItemCollection(),
                       SessionStateUtility.GetSessionStaticObjects(context),
                       20
                   );
    
               for (int i = 0; i < Zip.SessionItems.Count; i++)
               {
                   if (Zip.SessionItems[i].ToString().Contains(id))
                   {
                       string sKey = Zip.SessionItems[i].ToString().Replace(id, "");
                       temp.Items[sKey] = Zip.Session[Zip.SessionItems[i].ToString()];
                   }
               }
               return temp;
           }

    Even if we call the SessionStateStoreData we need to provide all the objects and the correct name as well as filtered by Session id.

    Modification on Scott’s code.

    I had to make 2 modification on Scott’s code, not to fix errors, just to adjusted to my needs.

    public class ZipCacheInternal  
           {  
               public object this[string index]  
               {  
                   get  
                   {  
                       return GZipHelpers.DeCompress(HttpContext.Current.Cache[index] as byte[]);  
                   }  
                   set  
                   {
                       HttpContext.Current.Cache[index] = GZipHelpers.Compress((string)value);
                       SessionItems.Add(index);
                   }  
               }  
           }  

    Instead of be a string indexer I changed it to be able to store any kind of object as well as I keep track of all session on an Array.

    Testing the code.

    Now we can run the code to test the application, a simple web form with 2 buttons, one to set and the other one to retrieve the session previously set.

    protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack == false)
            {
                Session["Something"] = "Hello World";
    
                Response.Write("Test");
    
                Label1.Text = "";
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Label1.Text = Session["Something"].ToString();
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            Session["Something"] = TextBox1.Text;
        }

    image

    Of course I provide you with all the source code and the test application for you to improve my code. There are still a few things I would like to add as well a few things that I didn’t implement in the provider. So expect a few bugs and issues.

    Download it from here

    Summary

    This is the first cut to see how it behaves, I’ll be adding some of the functionality that Scott was talking on his great post. For once, check if compression that object will reduce the bytes, some objects are bigger when compressed.

    Hope this helps

    Cheers

    Al

    Posted from http://weblogs.asp.net/albertpascual

    The wonderful world of tech travelling not to be confused with business travel.

    There is a huge difference between tech travelling and business travelling. I started realizing it in the last trip. I don’t know why still people calls it business travel or airlines prices your business trip instead of your tech trip. If you don’t see the difference just yet, please next time you are in the airport, hotel, conference or just on the road, take a minute to see the big difference out there.

    Business traveler profile Tech traveler profile
    • Carries a blackberry just to keep his email, however the blackberry is always in his ear.
    • Carries an iPhone for the music and normally the head phones are on listening a hanselman podcast. He is never on the phone, but constantly using twitter or email.
    • Carries a soft briefcase over his shoulder with a small laptop.
    • Carries a backpack with the huge laptop with a 17 screen, webcam and always fires a compiler or VS2008.
    • Dresses business casual.
    • Jeans an a t-shirt will be good enough for the airplane, a polo shirt if I need to talk to customers.
    • Never fires the laptop at the airport if there is not wireless as he only uses the laptop to reply emails.
    • Replying email with more than one sentence is a waste, only use outlook when trying to win a project. If fires the laptop at the airport is to work in some code.
    • Travels with another business traveler to discuss what they going to discuss in the meeting.
    • Travels alone or changes airplane tickets to make sure to travel alone and get some work done.

    I’m sure you have been exposed to those clear types and you can add more to this list, please feel free to add your suggestions as a comment. However those will give you a clear idea of why is not business travelling.

    There are also different requirements for tech travelling, like we do not all airports with wireless, I’ll need your help to add to the list.

    • Sacramento
    • Phoenix
    • Baltimore

    photo[1]The worse part of tech traveling is being away from the kids and missing a few stages. For once, my 2 year old has become a chatter box overnight, she can talk your ear off for 30 minutes in a single breath. All my children being very verbal at an early time, very clear speech as well as extremely descriptive on their arguments. 

    A tip for any tech traveler from me, would be to carry a webcam on your bag pack, to connect every evening and see your kids, more important for them to see you.

    I purchased the Microsoft LifeCam VX-7000, small and powerful with a microphone embedded. A few months ago I found myself singing a good night song to my 5 years old before taking off on the airplane, quite embarrassing yet made me feel the worse father in the world. Now I try to schedule flights to arrived back home before the kids go to bed.

    Happy tech traveling.

    Cheers

    Al

    Posted from http://weblogs.asp.net/albertpascual

    Posted: Oct 26 2008, 07:55 PM by albert | with 1 comment(s)
    Filed under:
    ArcGIS API for Flex 1.0 is now available

    ESRI has release the ArcGIS API for Flex 1.0. This is a great API that you can use the Adobe Flex Builder 3 to create great Flash maps.

    ESRI Flex API 1.0

    http://resources.esri.com/arcgisserver/apis/flex/ Download it here.

    Cheers

    Al

    Posted from http://weblogs.asp.net/albertpascual

    Posted: Oct 24 2008, 05:32 PM by albert | with no comments
    Filed under: ,
    On the road again to the Homeland Security Summit.

    Some people are born for business travelling and spending time in conference or summits. I’m not that kind of person, I am the geek that I prefer to stay away from this kinds of networking and just use twitter. I’m at the Homeland Security Summit in Scottsdale AZ.

    photo[1]

    Something I like is too see the boxes and how the build up works, it’s pretty interesting how many different cables are there. I personally love seeing the set up process and I hate to help configuring the computer and any IT related job.

    photo[1]

    The Microsoft signed was there, I wonder what Microsoft has to do with homeland security, I shall see tomorrow. 

    photo[1]

    I set up for the first time a touch screen running my software, this tables are too heavy to become part of the American family living room decor.

    Going back home on Thursday, all to be set, I accomplish quite a lot of work on the airplane and airports, finish lots of work I owned to many different people. This is a great opportunity to do just that, as when I am on the campus I get lots of interruptions.

    When travelling I would recommend to take with you a webcam to keep in touch with the kids, they don’t really want to talk to you on the phone, thus seeing you is the most fun and makes them feel like you are not that far.

    Well, need to go back to the reception to get a refill of some bud light.

    Cheers

    Al

    Posted from http://weblogs.asp.net/albertpascual

    Using GeoTwitter to track the fires in LA

    Every year before Halloween, the fires begin here in Southern California. Tonight I was using GeoTwitter GeoRSS Editor to track the fire to share it with my family and friends.

    image

    The steps to create your georss feed is pretty simple, add as many lines, points and polygons into the map and press Save, after giving your feed a name, the system will provide you with a feed to share with your favorite viewer.

    image 

    You can see other users georss feeds bellowed saved by the system.

    image

    What's next on the GeoTwitter Editor?

    I've put off the development of the Editor long enough, I have been extremely busy with other side projects, yet the time has come to get to work in this tool. After all the feedback, I believe I am going to follow the recommendation to allow to save your feeds forever, or until I delete it, for user collaboration. Also when entering points, lines and polygons I'll ask for a title and description to build the body of the feed. I'll keep a date and time of the last update. Hopefully the changes will be complete by the end of the month, I'll update the source code to codeplex as previously done.

    Any other ideas or suggestions are welcome.

    Cheers

    Al

    Posted from http://weblogs.asp.net/albertpascual

    Being a software engineer in a bad economy

    My friends and family are a little worried about “these bad economy”, many articles are coming out or even books about how to deal with a recession.  One good book that just came out is; Bulletproof your job, the message is clear, be visible, easy and ready at your company. Make sure you work in projects that are visible to the big heads, make sure you do not complain or make things hard, and be ready for any extra work or travelling.

     

    I also would thing that every company is different, at recession time, big companies are stronger than small companies with small amount of money in the bank. So even you following all the experts, you can find yourself without a job in a few months.

     

    I have seen software developers trying to get visible in the .NET community right now, I believe this is because they want to use the networking in case they need to apply for a job. In my opinion, if you are not sure about your company , make sure to make the change now to a company that can go through any economy slow down without having to lay off people,  what are those companies? Well for starters companies that are still recruiting is a good sign, many now have implemented a hiring freeze, some still need more programmers. Like Tellingent, a software company based in Dallas TX and creators of the Community Server. 

     

    Another way to find a software job is to look at the hidden networks for local jobs and find the companies they are still applying. I would personally stay away from big hiding websites. Hidden networks are companies that want a direct contact with the software developer.

     

    Robert Scobler is blogging every day about the economy world instead of the tech world, as this is the main concern looks like. Still I believe that now more than ever.  Famous bloggers with many followers are worrying the professional lately.

     

    Please share with me the stories about being a software developer or IT professional in this worried times. What are your plans? How is the market where you are?

     

    Cheers

    Al

     

    Posted from http://weblogs.asp.net/albertpascual

    More Posts Next page »