Today I read an article Opportunities for workers open up, but more hurdles ahead in Citizen Matters and the article starts as “Bangaloreans reading this article may have felt the pain of the downturn, but access to job opportunities and benefits like insurance are things we still take for granted. But what about our cooks, maids, plumbers, construction workers and others? Here’s what we found out”. This made me think and I bookmarked the same to request the readers of this blog to read this article and share the information on LabourNet with your cooks, maids, plumbers, construction workers and others. Effectively they are trying to get these low paid workers their benefits.
I learnt a new term called netbook and for a lot of time though it was notebook and later realized I was not. when tried to Google on netbook, I found very hard to tell the difference between netbook and notebook, netbook and smart phone.
The production of netbooks has been influenced by the arrival of new power-saving new processors like Atom from Intel and One laptop per child program. A netbook is a small, light weight, low cost, highly portable, energy efficient alternative to a full sized laptop computer. They are primarily used for web browsing, email, and instant messaging and have USB ports to hook up peripheral devices like integrated speakers, webcams, Wi-Fi, and more.
If i need to upgrade my home laptop which is 6 years old, should I buy a new notebook or netbook? Netbooks can run most Office applications such as Excel and Word very easily, but not heavy programs such as Photoshop or large image processing. The attached link that compares the features of today’s netbooks and the cost of netbook seems to be far less than 50% of laptop cost.
I have listed some windows 7 features that I plan to develop examples going forward
Windows Touch: I have always seen ATMs making use of Windows operating system and offering a touch screen support. I used to wonder when will this feature be at my computer too. Going forward,with Windows 7 and a touch-sensitive screen, you can browse online newspapers, flick through photo albums, and shuffle files and folders using your fingers. Windows 7 also provides the touch keyboard . This means no keyboard, no mouse. Will my fingers hurt if there is issue with touch screen monitor.Some Windows 7 Features that I think are towards Windows touch users are
- Jump Lists In Windows 7, the taskbar has been completely redesigned. A new feature is Pin Feature. You can pin a favorite program to the taskbar, you can always see it there and easily access it with a single click. Another new feature are Jump Lists for an application.Jump Lists help users get to where they want to go faster. Jump Lists are files, URLs, tasks, or custom items that open within the application. The context of the jump List for your application can have two item categories
Destinations are items that appear in the Recent, Frequent, or custom categories based on the user’s item usage. Destinations can be files, folders, Web sites, or other content-based items. Destinations can be pinned to or removed from the Jump List by the user.
Tasks are common user actions performed in applications that apply to all users of the application. Task can’t be pinned or removed.
- Snap : Snap is a quick (and fun) new way to resize open windows, simply by dragging them to the edges of your screen. Depending on which edge you choose—top or bottom, left or right—the window will expand vertically, fill the screen, or you can even position windows side by side. Snap makes reading, organizing, and comparing windows a…well, you get the picture.
You also have new touch gestures supported like Pan(Touch and drag the page with either one or two fingers), Press and tap(equivalent to press and hold or right-clicking an item), Rotate,Zoom.For Programming,look at MSDN article Introducing The Taskbar APIs
Windows Ribbon: Ribbons are the modern way to help users find, understand, and use commands efficiently and directly—with a minimum number of clicks, with less need to resort to trial-and-error, and without having to refer to Help. All the users of Microsoft Office 2007 applications have made use of Ribbons. Windows 7 enables your application to exhibit Ribbon controls(available in Windows Vista in future). The Ribbon architecture is based on Model-View-Controller. Please be aware that upgrade from menu bars and toolbars to the ribbon is a major overhaul of your program’s interface. Please look at Ribbon Design Process and one needs to scrutinize every feature and decide how to best use the ribbon to convey the feature’s meaning and value. There are 3 categories of Ribbon Controls
- Basic controls consist of one or more buttons that can be invoked by a single mouse click to perform a simple action.
- Container controls are composed of groups of controls, menus, lists, or item and Command collections. There are two types of containers, static and dynamic.
- Specialized controls for specific UI functionality.
Staying organized(Libraries): In previous versions of Windows, managing your files meant organizing in folders and subfolders. In Windows 7, you have concept of libraries to organize and access files regardless of where they’re stored. A library looks a lot like a folder, but it doesn’t actually store files. Instead, a library points to the locations where your files are stored so you can see them all as a single collection. You can search within a library. You can also have search filters that will filter the search results.For Programming,look at MSDN article Introducing Libraries
In addition, Windows will remember every search. As soon as you start typing, suggested terms from previous searches that are similar to your current search term will appear under the search box—sort of like a search box in a web browser.
Search in Windows 7 will go beyond local . Developers and IT professionals can enable their search engines, document repositories, web applications, and proprietary data stores to be searched from Windows 7 without needing to write and deploy client code. This enables end users to search their corporate intranet or the web as easily as they can search for their local files—all from within the same familiar Windows interface.
VHD support: Windows 7 simplifies image management by adding support for virtual disks in the disk management tools. You no longer need to install the Hyper-V Server role and use the Hyper-V Manager console to create VHDs. The Disk Management console has an action to create a new VHD file, for either a fixed size or dynamically expanding VHD, which is uninitialized.
Windows Web Service : Windows 7 offers both managed-code APIs and native APIs for building and running web services. The strength of Windows Web Service that there is no dependency for web client and web service on .Net framework or CLR or COM. It does not replace WCF. You can control when memory is allocated and deallocated on the heap. More information can be seen in the blog of Nikolas. Effectively we can build a web service and web client without .Net framework and IIS and I like this.
UAC: You get more control of User Access Control settings.
Windows Sensor support The Windows Sensor and Location platform provides a standard way for device manufacturers to expose sensor devices to software developers and consumers, while providing developers with a standardized application programming interface (API) for working with sensors and sensor data. It would be nice to know that how many device manufacturer’s approach are compatible with this and that would drive its usage,
Some informative links are The Windows 7 Taskbar ,Windows® API Code Pack for Microsoft® .NET Framework
For close to an year, I wanted to ride on cycle to work and ride back home. I bought cycle 3 weeks back on Sunday on Commercial street and had a ride of 15 kms to home. The bicycle is a sports cycle with gears fitted to the back wheels and is black in color. Attached is a red color one similar to mine.
The first ride gave rise to a lot of pain in my body as I was riding after 11 years. I became less confident whether I could ride 13 Kms to office by riding a bicycle . To boost my confidence to ride, I tried round trips of starting from 3 kms during week days to 12 Kms during weekends, near my home.
Practice made me confident, I decided to ride to work by bicycle. Today I ride to office by cycle. Nice thing was I crossed the people waiting in cars and it was a smooth ride, but for challenges in Marthahalli bridge and Agara traffic. Today I did not wear helmet and came safe. My energy level was boosted and i am assuring myself that cycle to work does not make me tired to focus on work
When I come on the Volvo bus, I spend 45 minutes on normal day and today was normal day to cycle and I end up spending 1hour 15 minutes to come to office. That is not bad. I wish the folks coming to my office from close areas like HSR Layout atleast move from their power vehicles to ride by bicycle. Guys! it is real fun.
I plan to ride home again back, but have to leave before it becomes dark. I might have to buy a helmet if I become regular. I plan to already ride 2 days a week by bicycle going forward. Hope this blog serves as motivation for me to ride 2 days to work on cycle.
While building POC with SilverLight, we were helped by the work done and shared by the community. This blog is to thank to all the help and book marking the links for my future reference. I would keep updating this blog with more links as I go forward.
MVVM : This is pattern recommended for silverLight. Please remember that silverLight calls to Web services is asynchronous and that brings rise to lot of fun
- Model-View-View Model In Silverlight 2 Apps
- ViewModel Pattern in Silverlight using Behaviors
- ICommand for Silverlight with Attached Behaviors
WCF Service and Handling WCF Exceptions in silverLight 3.0 : Handling WCF exceptions is tricky still in silverLight 3.0
- StackOverFlow: Net WFC/Web service exception handling design pattern
- Creating and Handling Faults in Silverlight
- Writing a WCF Message Inspector
- Creating a command manager in Silverlight 2
- Silverlight clientaccesspolicy.xml files for the Enterprise (Part 1 of 2)
- My Silverlight application cannot access my service!
- Enabling cross-domain calls for Silverlight apps on self-hosted web services
- Making a Service Available Across Domain Boundaries
64 bit support
SilverLight is not supported on 64 bit machines.SL in 32-bit mode (and not have a 64-bit native version).But 64-bit operating systems have 32-bit browsers that should work just fine with all these web plug-ins.
Even in 64 bit machines, we can have Sidebar Gadgets that use Silverlight. The Windows Sidebar application (sidebar.exe) runs by default in 64-bit mode and in order to use a Silverlight-based gadget you need to run sidebar.exe in 32-bit mode.
- Unit testing in Silverlight
- RIA services approach is cool. we felt RIA Services need to mature more. We need to be able to upgrade the service as we progress in the software development and there was no inheritance of entities support with RIA services and Entity Framework. Then read Microsoft .Net RIA Services: Not until 2010 and stopped. Silverlight 3 and RIA Services – The advanced things.
I am bookmarking these two books to get and read some times in the future.
- The Passionate Programmer: Creating a Remarkable Career in Software Development, by Chad Fowler
- The Nomadic Developer: Surviving and Thriving in the World of Technology Consulting, by Aaron Erickson
The first one talks questions whether your careers is driving you where it might want to take you or you are driving and have control of your career. Some excerpts are
“Agile is good to software career as much as it is good for software development .Set big goals, but make constant corrections along the way. Learn from the experience, and change the goals as you go. Ultimately, a happy customer is what we all want (especially when,as we plan our careers, we are our own customers)—not a completed requirement. Doing an excellent job at delivering a career to myself that I didn’t want. Changing your career doesn’t require throwing away everything you’ve already done. Make your improvements small and incremental but daily. If you plan your career as software waterfall project, the same problems that occurred in software projects can happen to you and your career.”
The second book provides survival techniques to consultants, but i think it might be useful to others too. Some of the tips for my reference
- Avoid making decisions from a place of fear or greed . you really have nothing to fear but fear itself
- Do everything you can to be the go-to person that your employer depends on.
- Keep in touch with your network of customers, colleagues(current or old).
- Avoid being useful for only one kind of skill. The more different things you can do, the more likely you find a spot on a project or with a client. if needed,work with your account executives and management to determine what is currently marketable and complementary to your own skill set.
- The art of survival depends on attracting the right kind of attention
- Engage in office politics as little as possible. But understand that you cannot avoid office politics. By demonstrating an even-handedness and fairness and By being the cooler head, you put yourself in a better position.
- Being overpaid is hazardous to your survival(during recession)
- A recession is a very bad time to ask to put on another client, unless the issues with the client have to do with ethics, morals or legal concerns
- Trust, Culturally fit with organization, Have the skills needed by your employer,Don’t be “a problem. Although there are as many valid reasons to complain about things that are not perfect, unless a situation is serious, the less you are seen as high maintenance, the less likely some people will see losing you as
- Live within, or better below your means. Having low personal expenses and good savings allows you to be more selective about whom you work for,
This was the tile of an article published in Dr Dobbs. It started to make me think. When i remember computer science, I remember data structure, algorithms and complexity and the interest created in them made me look for a job in software industry. I has assumed that software job was a job that utilized computer science in total and joined with the lure of high start salary 11 years back. Looking 11 years later, I see that the strengths of computer science used at my work is close to 10 percent or less than that. Software engineering involves little or no role for algorithms, data structure and complexity.
Software engineering involves humans as central to the process. I am copying this picture from Dobbs article for reference. The red line is the property "directly involves human activity" and items above the line is software engineering and the items below is computer science.
Hence if we are building a software development team, what should the manager look for team members? computer science skills or people skills(attitude, team work, ownership, responsibility). It might be good to have one team member with computer science background, but most of the team members including me need the other skills. I would like fresher’s who are students of computer science to be aware of the differences between software engineering and computer science, prior to joining software development.
I feel that I need to spend a lot of time with my daughters and do not spend them. I don’t want to use the phrase quality time but how do you make the little hours together memorable. Writing down some ideas to get them implemented this month
- Play the game they like
- Go with them to the park
- Cycle with them over the weekend
- Read to them
- Eat dinner together every day(if possible)
- Watch a movie with them, they like
- Take them to Museum in Bangalore
I liked the following non user interface aspects of SilverLight 3.0 .
- No dependency of .net framework on target box.
- No need of ASP.net pipeline, no need of pages and page life cycle.
- out of Browser experience. A Silverlight application can be. Always connected, Always disconnected and Occasionally disconnected.
- Support for hardware acceleration. performance of complex animations and video playback depended heavily on the capabilities of the host PC.
I am summarizing my learning’s and limitations of SilverLight 3 out of browser applications(OOB) for my reference Please look at this tutorial for detailed steps. Upon user consent, a Silverlight app running in the browser can be detached and pinned on the user’s desktop. On Windows this can be through Start menu and/or Desktop shortcuts. On the Mac the user can drag and drop the application bundle to a location of their choice. The application can be removed by right-clicking on the out-of-browser application and choosing Remove Application from the popup menu. This can be done from either the out-of-browser application or from the same version running in the browser.there is no entry as of today in Add/Remove programs of Control Panel. Bookmarking this blog.
- sllauncher.exe : when the Silverlight 3 application is detached, it can be run from the Start menu or from a desktop icon. Out-of-browser applications run on the desktop inside a window that is hosted from the sllauncher.exe process. The out-of-browser applications can still access the network and use all of the .NET framework libraries available to Silverlight while they are detached. when installed on a client’s machine, launching the Silverlight application actually launches an application which hosts the Browser control. The Browser control then hosts the Silverlight application.
- Isolated Storage: SilverLight applications can persist data in the file system using the Isolated Storage mechanism to store client side cache data. Every silverLight application is allocated 25 MB of data for it use from isolated storage by default. The size of storage space can be increased.
- Application Updates: when a out of browser application on its launch checks with the server for updates. If an update is available, an event fires so the app can notify the user that a newer version is available. The newer version is automatically downloaded and then executed the next time the OOB is started.
- AppManifest.xml file : This file has settings to determine whether the silverlight application cannot be detached and run out of browser.Effectively manifest file helps you to enable or disable the out of browser experience for a silverlight application.
- Application.Current.RunningOffline property. This property returns a Boolean value that indicates whether the Silverlight application is running online (in browser) or offline (out of browser). For example, when you application runs online, the application can communicate with the browser’s DOM. when the applications runs offline, the application is hosted in the sllauncher.exe process and does not have a DOM (since it is not a browser). Before interacting with browser’s DOM , one could check the RunningOffline property.
- Network Connectivity: It is possible to detect whether a network connection is available, using NetworkInterface.GetIsNetworkAvailable() method in the System.Net namespace. This check is essential when running an out-of-browser application that must communicate with Web services.
- Network address change :A silverlight application can subscribe to NetworkChange.NetworkAddressChanged event (also part of the System.Net.NetworkInformation class) to detects a network address change
- Execution States Silverlight notifies the app on momentous events throughout its lifetime and transition from in-browser to out-of-browser, allowing the app to model its UI accordingly.Application is notified by an event (ExecutionStateChanged) whenever the execution state of the application changes.
Known Limitations as of today
- SOAP web requests have no cookie support
- No ASP.Net Session state available for SilverLight applications. We can try to make use of WCF session to pass the user profile on multiple calls.
- No printing capability
- No mechanisms limit the number of instances to single instance
- No support for windows mobile
- No HTML DOM bridge access or xml http
- Debugging offline instances is not directly supported by VS 2008 like the debugging support for online instances . You should attach sllauncher.exe manually to debug offline instances.There is no way to distinguish between multiple, simultaneous off-browser Silverlight apps.
- when you uninstall the out of browser application, isolated storage is not removed by default.
- There is no option for declining the update of an application when the deployed application has been upgraded.
- No infrastructure support to handle scenario where the data model of the existing OOB application does not match with data model of the upgraded application. If your data model changes require a restart . Be good to your users, show UI for major updates..
Let me end with a question to ponder and search answers in future updates: Is SilverLight going to replace a lot of web and Winforms applications? is there any relation between SilverLight and ASP.NET MVC?