Tags: | Categories: Blog Posted by admin on 4/27/2010 6:17 PM | Comments (8)

 

wood_laptop(1)[1] I have been collecting a poll to almost any developer I find on my way as well as business owners. I have been looking to see what a small development shop, medium size company and a big corporate considers when providing development computers to their software developers. This has being very intriguing to me. In my career I found different software developers, the ones that work always with one product and one framework, as well as the one that keeps a few frameworks and projects. Of course there are many other developers that configure their computers every 3 months.

The poll I am collecting, is what kind of computer and how much will you spend for your developers? There are already a few answers that I have been collecting from different people, software engineers, business owners and managers. I’ll be collecting as many opinions as I can, if you think about it, computers are a huge expense as bigger the company is, yet having the developer waiting to open application or to debug is also a big performance issue in the overall of the project. This is not an easy answer, you can provide a developer with the best machine that money can buy at that moment to make sure they’ll never be idle, and depending on the developer salary, that can also be a horrible or a great idea.

Is then the machine the developer receives from the company in comparison to their salary? Is there a formula?

If a developer spends 5 % idle during the day due to their development computer. Do you provide the 5 % of the developer salary? Is it that easy?

Machine $ = (developer salary * 0.05)

What about if the developer is 20 % of the time idle because their computer is really old, then a 20 % of their salary will be a very expensive machine? Will that resolve the 20 % idle?

I’ve receive an opinion from a developer telling me that the company should provide a computer, to the developer, bigger than what they need, so they never need to worry in running into those problems, is that monetary effective? Is that an overkill and a waste of money?

Other opinions from a business owner, was, provide developers a machine that is in the market right now for developers. That person gave me the specs of computers that is purchasing it right now after his research: 8 GB RAM, 4 Cores, SSD 60 GB Hard Disk for OS and 320 normal HD for program.

Amazing enough looks like many people are looking at this problem with different eyes, I got a great email once from a friend that provide me with the answer I disagreed until he explain that technology changes to fast, purchasing older systems allows corporate to handle their budgets as well as get huge deals, that means they are always ready to buy more machines without having to constantly replace parts, they stay on the well known old systems that are fully supported, helping other companies get rid of their old inventory. Sounds to me as a great symbiotic system that benefits even the developer that gets a new machine frequently.

Because all the opinions state above, my mind is not set, nor I think there is an easy answer to that one, would like to find out what is your companies policy in this one and how it works for you.

Cheers

Al    



Tags: | Categories: Blog Posted by admin on 4/27/2010 5:14 PM | Comments (0)

As many people move to Silverlight 4, some of us that still have old projects in Silverlight 3, I haven’t found any solution to the below problem just yet, just a workaround for now.

Still when using Visual Studio 2008 and Silverlight I receive this error on BitmapImages, something that looks like got fixed in Visual Studio 2010 and Silverlight 4, I haven’t tried in VS2010 and Silverlight 3.

Silverlight 3: BitmapImage.SetSource - Catastrophic failure

Message="Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))"

Looks like that happens in GIF and PNG files, if I convert the image to BMP Silverlight 3 doesn’t throw the exception. This is the only workaround I can find right now

Anybody seen this problem?

Cheers

Al



Tags: | Categories: Blog Posted by admin on 4/26/2010 10:41 AM | Comments (14)


After installing Visual Studio 2010 I started having problems with Copy and Paste. Trying to find out how many users are being affected by this bug.

The use case to reproduce the bug, just using VS2010 for a few minutes and eventually doing Control – C and Control – V to copy lines of code does not work. Using the menu to do the copy and paste also won’t work. Looks like a problem in the clipboard itself IMHO.

The set up of my computer. Windows 7 Professional with 4 GB of RAM, Inter Centrino Duo.

VS2010 version 10.0.30319.1 RTMRel

Work around right now is rebooting the computer, closing VS2010 and reopening it, does not clear the problem.

Bug at Microsoft Connect:

Type: Bug

ID: 552990

Opened: 4/21/2010 7:46:00 AM

Many times when working in VS2010 after a long time when I copy some code lines and try to paste into another file ... it fails at pasting and the text never pastes ...

Anybody else found this problem?

Cheers

Al

Tags: | Categories: Blog Posted by admin on 4/25/2010 11:13 AM | Comments (1)

I was lucky enough to got invited to join Carl and Richard on their road trip from Redlands to Phoenix. You can be the lucky one on their next stop.

top[1]

What an experience to share 5 hours on a RV with them, there isn’t anywhere to hide in a RV, they pretty much gracefully answered all my questions. No many times you are given the chance to borrow brilliant minds.

I can listen to them all day long talking about technology and what the industry changes during the year, I enjoyed the laid down from Richard Campbell of the evolution of software development in the past few years. As I listen I can see how they have been observing technologies from the side lines and how they keep evolving every year to follow the trend. A hard job I might say, yet, they seem to love every second of it.

Can’t thank them enough for letting me part of their road trip without leaving me, after lunch, in Blythe. Richard Campbell and Carl Franklin are not just hysterical to listen, as well they are one of the nicest people I meet “on the road”.

You can follow their road trip here with information about their next events as well as the real time map Silverlight application to find where they are now.

Cheers

Al

Follow me at Twitter.



Tags: | Categories: Blog Posted by admin on 4/18/2010 6:24 PM | Comments (1)

sl4bloglogo_0DE0BF1F[1]

Silvertlight 4 got release this week and with that blogs and social media got a fantastic coverage of the details, hopefully I got the ones that will help you to get started fast.

Step 1: Install VS2010 unless you want to keep using the WP7 SDK to write applications, the new release does not include the beta of Windows Phone 7.

http://www.microsoft.com/visualstudio/en-us/download

Step 1.5: If you developing apps for Window Phone 7 check this link for the information.

Step 2: Make sure your customers have the correct runtime. This is important, when you are writing application with your new shiny VS2010 make sure that the upgraded apps request the correct version of the runtime.

http://www.microsoft.com/silverlight/

Really this is about all. I am sure you already spent your time using VS2010 Beta and then RC, so you know about the new look and feel, yet things didn’t change much besides a very cross platform IDE. Upgrading from Silverlight 3 to Silverlight 4 and then downgrading again is so simple. And remember, you can now use the new .NET 4! Huge bonus.

Need to learn more?

Jesse Liberty as always has the best tutorials: http://www.silverlight.net/learn/tutorials/

Seriously before you purchase any book, read his tutorials about SL4, nobody explains it better or knows more details.

http://www.silverlight.net/getstarted/devices/windows-phone/

http://www.silverlight.net/getstarted/ To download SL 4 and SDK for developers

I recommend to install VS2010 and upgrade your solution file from VS2008 to VS2010, as is cross platform, you’ll still can work in .NET 3.5 and Silverlight 3 without any issues.

A few things: If you have been using VS2003, VS2005 and VS2008 the look and feel will be a little hard to get used at the beginning. Also I would recommend a powerful computer to run the new Visual Studio 2010, looks like that IDE takes more resources that the predecessor. 

Good luck and have fun!

Cheers

Al

Follow me in twitter.



Tags: | Categories: Blog Posted by admin on 4/9/2010 6:40 AM | Comments (2)

Finally Apple decided to add multitasking to the iPhone to compete with all the new devices coming up and existing.

At an Apple press event, CEO Steve Jobs announces multitasking support in the newest iPhone operating system. Users will finally be able to switch back and forth between applications like Pandora and Skype without having to shut down the app entirely to enter a new one.

Their excuse to not bringing multitasking until now is they were waiting to make multitasking right.

New features on the iPhone 4.0 are:

  • Multitasking with background services
    • Audio
    • VoIP
    • Location (GPS, Cell location)
    • Push Notification.
    • Local notification.
    • Task completion.
  • Folders to organize your apps better with side to side and now with folders in and out.
  • Email improvements
    • One Inbox for all your mail, if you don’t like that like me, you still can access individual mail accounts
    • Theard mail like Gmail for all your accounts.
    • Attachments for third-aprty apps.
  • iBooks like the iPad.
  • Bluetooth keyboard support.

3G and 3GS iPhone will be able to upgrade to OS 4.0. However my biggest fear is that will make the 3G iPhone a horrible experience. Already iPhone 3G owners are complaining about the slow experience of the iPhone 3G with OS 3.0, that OS was created for the iPhone 3GS that is much faster, the iPhone OS 4.0 was created for the iPad that has twice the memory and better CPU.

My recommendation to iPhone 3G users is to do not upgrade to 4.0. We should also expect to see new hardware for the iPhone coming up this summer with the release to support the OS 4.0.

A summer release, yet the iPhone OS 4.0 specific date of release hasn’t been confirm.

Video of the event can be found here:

http://events.apple.com.edgesuite.net/1004fk8d5gt/event/

Cheers

Al



Tags: | Categories: Blog Posted by admin on 4/9/2010 2:15 AM | Comments (1)

Its been more than 10 years since the first DVR came out in the US, the idea that you won’t be wasting time by programming your video to record a show. Tivo was the first company to bring the idea of a hard disk to store your programs as well as the recurring shows recorded. It’s being more than 10 years since that technology advance that improved the live of many families, yet after 10 years the technology hasn’t improved much besides all cable and satellite companies provide their own device without any new features.

Many customers have spoken and asked for new improvements and features.

  • A button to skip the commercials.
    • The technology to detect commercials has been invented, a signal to skip the commercials and even better not recording those, just keep your shows as a long video without interruptions. At least, like Tivo, go back a few seconds after pressing play. We will talk why that feature hasn’t been implemented in extend. There are many reasons behind the idea of keeping the user unable to skip commercials on a DVR, the marketing companies want you to watch them!
  • Internet devices on your DVR.
    • A non brainer, now you need a device as your DVR and another box as your Internet connected device like Apple TV, your LG Blu-Ray with Netflix device, etc … Will be so simple to add a wireless N card on those devices.
  • Store your shows in the cloud.
    • Pretty much attached to the first prior statement, having an IP address, allows you to keep a copy of the show on the web, not your copy, just a bookmark the show, as many users can share the same show, so devices do not need big hard disks, you have big spaces in the web to store your shows instead of keep every show in the device hard disk.
  • Streaming your shows to your laptop, netbook, iPad, etc.
    • Have many times after coming back from vacation, you find a full DVR? And while on vacation you thought that will be nice to watch a show before going to bed? There are a few users that already using Hulu and other websites to do just that, Tivo have a few options, yet a way to just tell the device to stream it on the web will be very nice. Started seeing a few companies working in that feature.
  • Centralize.
    • One device to rule the all. This is a given and many companies already have the multi-room option, yet normally is for only two TVs instead of the whole house.

There are many arguments in all of the features above, the main and most important one is the feature to skip commercials. The market was worried that people between the ages of 14 and 45 were avoiding commercials on TV as those are the main targets as consumers, yet studies shown that the most important, expensive commercial is the first one, as they may watch and also customers watching commercials at fast speed, retain part of the information presented. Those companies, of course, are the ones behind keeping DVRs from technology to allow users skip commercials.

Now with the Internet getting faster every day, the idea that your TV comes in a coaxial cable or stream from a satellite is getting close to be old ways to deliver the Internet, FIOS brings the TV using the Internet and with that, many companies and TV makers started adding an Internet card to your TV or an external device to provide you an IP address.

Is the IP TV the future of the TV? Will all TVs come with a Ethernet port or a wireless card to plug into your home network? It seems that is the future of your TV, having IP addresses to all your TVs, means that you can share within your house all shows to any TV as well as any TV can stream any show from the Internet.

By just having your devices access to the Internet provides something that cable and satellite cannot do now, the two way communication, instead of just broadcasting the signal, now every device can send information and receive information as well, so you can interact with your provider better giving more options. On satellite, your dish normally have 1 or 2 heads, meaning can only receive one or 2 channels at the time, some new dishes have 3 heads, providing 3 channels at the time, so you might be recording 2 shows at the same time and you won’t be able to record a third one. With IP TV all your shows are not being recorded by you, the provider records all shows and store them for the amount of time that is allowed by the license, then they can before expiring or the first time you want to watch it, stream those shows to you to a centralized location where you’ll be able to stream from it.

As a IP TV provider, there are many interesting and attractive benefits on going IP TV, if they are allowed to store the shows in the cloud, they don’t have to provide big hard disks to their customers, everything becomes onDemand shows, even if 10,000 people are subscribe to record the show “The Simpsons” for example, they only need to store one copy, making their cloud solution smaller than first thought. For some reason the license to store your shows in your hard disk or keeping it on the cloud are different.

Having an IP TV will also allow you to get on demand movies, right now there are a few companies providing movies on demand avoiding late charges at Blockbuster or having to wait for the Netflix Blu-Ray DVD on the mail, how many times we forgot to send the previous in the mail. Renting the movies on Internet avoids the issue or returning and waiting, making video stores as blockbuster irrelevant. This is another case of companies and the movie industry avoiding to distribute their movies on the Web for some reason or another, making the physical DVD still necessary, even when technology has past that physical need for a DVD or even Blu-Ray disc, Internet show be the only distribution method.

My suggestion here, is if you need to buy a new TV, thing about purchasing a TV with IP enable.

Cheers

Al



Tags: | Categories: Blog Posted by admin on 4/5/2010 7:09 PM | Comments (1)

The iPad came to the market last Saturday and as always with the Apple marketing came the big lines and small tents that never seen a camp site but the Apple stores. There are the people that want one right away and want to be the first person to own the new shiny device from Apple and there are the people that are willing to wait a month for the device with 3G instead of just WiFi only. The iPad is an interesting concept, a bigger iTouch that can be used as a replacement for your Netbook, Kindle, iTouch and portable DVD. The perfect companion Apple suggests and markets.

Apple did a great job, in my modest opinion, marketing this device, yet I believe they left the casual laptop buyer behind for now, I’m willing to bet they will start targeting to the people that buys a home computer every 3 years as the best device to have around the house, many people that is not into technology does not know much about the iPad yet.

For people that purchase a computer, a laptop or desktop for the house, they only use it for the Internet and normally word processing, with the release of iWorks for the iPad, provides those consumers all the features they need and want. Email, word processing, Internet and their little games that comes with the OS. As well a easy way to purchase and install new applications without having to know much about computers. A very attractive solution, the question and problem is how is Apple going to reach that market? Expect a huge campaign to convince those customers to purchase an iPad instead of a home computer similar to the iPhone campaign.

I can also see Apple targeting those devices to schools and students as well as teachers, if they can accomplish that, convincing that there is a story and benefit for schools to go that route. I remember the days that Apple provided many free computers for schools. Still I don’t see my kids using the iPad to do their homework just yet. 

As always with Apple, you should wait for the second release of the device if you want to get more for your money, with the iPhone the first generation, came the high price of $599 and got drop to $399 after a few month. When the 3G came along, the price was $199 for a very powerful device with better battery life and 3G connection instead of Edge. Same story comes with every release of their devices. The second generation is always much better and much cheaper.

With the iPad, Apple position their price pretty low, compare on past campaigns, did Apple learn their lesson? Maybe, yet I’m expecting a price cut before the end of the year or better yet an upgrade to the device after all the users feedback is collected.

I believe an iPad with multitasking and Adobe Flash is expected. The question here is, are we going to see an upgrade on the hardware as well? Front and back camera? No doubt Apple has left many feature out of the iPad, probably due bringing it to market to do the best Apple does, see the user reaction, collect the feedback and then create the device they can sell better. Many speculations raised before the news of the iPad, the user demand for gestures was the common one. Now the iPhone 4.0 will be released on April 8th, a phone with better hardware allowing the user to do much more, hopefully coming out with multitasking, that means they already were planning that for the iPad 2.0? Apple has been working hard with their iPhone OS that runs as well in the iPad, I assume working in a multitasking version for devices with that power to compete against the Android from Google.

In my opinion, consumers should wait to buy an iPad until the iPhone 4.0 gets announce and expect that any improvements to the iPhone 4.0 will be inherit on the iPad 2.0. Right now until April 8th the features on the iPhone 4.0 is just an rumors and expectations. My guesses here for the iPhone 4.0 are:

  • A complete iPhone Operating System with multitasking that will run only in the new device, not old devices.
  • 512 MB of memory RAM instead of the 256 MB
  • A new Maps application with GPS turn by turn not based on Google Maps.
  • Better battery or at least battery life ( they always said that with any device )
  • Adobe Flash support for the Safari browser.
  • Microsoft Silverlight support for the Safari browser. ( I hope you ain’t holding your breath for that one)
  • Breaking away from AT&T and bringing 4G cheap on the new device as well as CDMA to support Verizon Wireless.

I know that I’m going to be one of the people to wait to see how things pan out with the iPad as well as the iPhone 4G, those 2 devices are well connected at Apple, the development of one, made the second possible. Apple wasn’t developing the iPad until the iPhone came out, after all the hard work they put into building a human interface operating system for a phone, they decided they will use the same OS for the tablet they always wanted to release. The success of the iPhone OS gave Steve Jobbs the perfect candidate for the development of the tablet, same OS, new hardware.

Remembering the past I was one of the people that purchased the classic iPhone for $399, not the $599 and I still got it wrong. I don’t want to make the mistake again. I’ll be waiting until this summer, not that I expect Apple to drop the price by summer yet Wife’s birthday is then and the perfect excuse for one ;-) Because I only want the best gadgets for my wife.

Cheers

Al



Tags: | Categories: Blog Posted by admin on 3/26/2010 10:57 AM | Comments (1)


Scott Guthrie started the thread of creating a Windows Phone 7 Twitter application in the Mix, followed by Miguel de Icaza creating an iPhone Twitter Client.

So I thought to extend the demo to a full Twitter client that can actually sends Tweets as well in Windows Phone 7. I created the UI for the twitter client to login and the Status Text Box.

image

I also wanted to use the location services, however the emulator does not support location just yet, always returns with data unavailable. Hopefully when the devices comes out, you’ll be able to use the GPS or the triangulation to get your location, therefore being able to send a tweet with a latitude and longitude.

The code is very simple to send a tweet, as in Silverlight we can use WebClient or HttpWebRequest, because we need to post and access to the header, we’ll use HttpWebRequest. As in Silverlight all calls are Async instead as like WPF that are sync, we’ll have to create AsyncCallBack methods to receive the information coming back from Twitter.

Finally we post the bytes with the status. Very simple and clean code.

 

Let’s looks the code:

public partial class SendTweet : UserControl
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://twitter.com/statuses/update.xml");

        string _Message = "";
        public SendTweet()
        {
            InitializeComponent();
        }
        
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            // Send a tweet
            _Message = textBox1.Text;
            PostToTwitter(textBoxUsername.Text, passwordBox1.Password);
        }

        private void PostToTwitter(string username, string password)
        {
            // encode the username/password
            string user = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(username + ":" + password));
            // determine what we want to upload as a status
                        
            // set the method to POST
            request.Method = "POST";
            
            // set the authorization levels
            request.Headers["Authorization"] = "Basic " + user;
            request.ContentType = "application/x-www-form-urlencoded";
           
            // set up the stream
            request.BeginGetRequestStream(new AsyncCallback(RequestCallback), request);       

        }

        private void RequestCallback(IAsyncResult asyncResult)
        {
            UTF8Encoding encoding = new UTF8Encoding();

            Stream _body = request.EndGetRequestStream(asyncResult);

            byte[] formBytes = encoding.GetBytes("status=" + _Message);

            _body.Write(formBytes, 0, formBytes.Length);
            _body.Close();

            request.BeginGetResponse(new AsyncCallback(ResponseCallback), request);

        }

        private void ResponseCallback(IAsyncResult asyncResult)
        {
            // If it fails, handler it better than I
        }

Didn’t take much to do as I know Silverlight, this is the advantage for developers that want to create applications for Windows Phone 7 (WP7) no need to learn a new language like Objective-C as well as your libraries, besides UI, will work, you can just reference your dlls created in Silverlight 3 and 4 and use the functionality.

Hope this helps.

Cheers

Al

Tags: | Categories: Blog Posted by admin on 3/22/2010 2:35 PM | Comments (1)


image_thumb_7433D110[1]

Installation tips.

If Visual Studio 2010 Professional or higher is already installed on your development computer, an add-in for Visual Studio 2010 Professional is automatically installed as well.

The installation took an hour on a Windows 7 with 4 GB of RAM and rebooted the computer once. Something tells me the installer still needs some work.

image

 

Let’s Write some code

Everything installed, let’s check if Visual Studio 2008 still works with Silverlight 3 first. CHECKED!

Of course the first thing I checked is the location API, and does not work in the emulator. Also the WebBrowser control does not support Silverlight 3 when surfing the web with items in Silverlight, nor JavaScript.

I referenced a few Silverlight 4 dlls and they work without being compiled if the System.Windows.Browser.dll is references as well, you won’t be able to use any UI component from those dlls, yet the functionality will still be there!

The Location API in Windows Phone 7 does not work in the emulator, so this code will never return a geo coordinates.

 /// <summary>
        /// Helper method to start up the location data acquisition
        /// </summary>
        /// <param name="accuracy">The accuracy level </param>
        private void StartLocationService(GeoPositionAccuracy accuracy)
        {
            // Reinitialize the GeoCoordinateWatcher
            StatusTextBlock.Text = "starting, " + accuracyText;
            watcher = new GeoCoordinateWatcher(accuracy);
            watcher.MovementThreshold = 20;

            // Add event handlers for StatusChanged and PositionChanged events
            watcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>(watcher_StatusChanged);
            watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged);

            // Start data acquisition
            watcher.Start(); 
        }

Using the WebClient class the way Scott Guthrie did returns this exception for some reason when making a request.

image 

The SyndicationFeed from the dll  System.ServiceModel.Syndication is not there for you to reference so you need to reference the one in Silverlight 3.0, everything works to parse the atom if you are using the search API at twitter.

image

You may also get an error to reinstall the Visual Studio 2010 for Windows Phone, just close the emulator and try again, you won’t have to reinstall it

After all those problems I had an app running!!

 private void buttonDisplay_Click(object sender, RoutedEventArgs e)
        {
            WebClient client = new WebClient();
           
            client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
            client.OpenReadAsync(new Uri("http://search.twitter.com/search.atom?q=" + textBoxUrl.Text));
            
        }

        void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
        {
             if (e.Error != null)
                return;

             SyndicationFeed feed = SyndicationFeed.Load(XmlReader.Create(e.Result));

             listBox1.ItemsSource = from tweet in feed.Items
                                    select new TwitterItem
                                    {
                                        ImageSource = tweet.Links[1].Uri.AbsoluteUri,                                                      
                                        Message = tweet.Title.Text,
                                        UserName = tweet.Authors[0].Name
                                    };
        }

Resources Links

http://developer.windowsphone.com/windows-phone-7-series/

http://geeks.netindonesia.net/blogs/risman/archive/2010/03/16/mix-10-windows-phone-developer-tools-ctp.aspx

http://channel9.msdn.com/posts/LauraFoy/First-Look-Windows-Phone-7-Series-Hands-on-Demo/

http://www.earthware.co.uk/blog/index.php/2010/03/writing-a-bing-maps-location-aware-application-for-windows-phone-7-series/