Jan
18
My Opinion of Accessibility is Changing
January 18, 2008 | 2 Comments
Because I want applications to be accessible myself…
I have always been aware that accessibility is important for subsets of users and when developing if it was convenient I would follow some of the guidelines for accessibility within sites/applications that I was working on. However, if when the crunch hit at the top of my list of portions of development to cut was accessibility. Why? I am not sure exactly but for most business related applications this is one that they can be convinced to let slide unless it was a requirement of their business and most user’s expectations of accessibility related issues when it comes to usage, in my mind, was that of acceptance if an incompatibility or issue was found.
While I know this isn’t fair and honestly what I have just said may offend a few people out there but from my perspective it was a reality of the business that I have dealt with to this point in my career.
HOWEVER..
I see that this is changing, and yes this may be a little late in the game but today is the day for me. I have seen the light and will reform. Over the past week I have hit three times where accessibility caused me issue or trouble.
- Browsing the web on my Compact IPaq - which I haven’t used in over a year I was surprised at the number of sites which did not function correctly or as normally intended on the devices which runs IE
- Sending a website for review to a client - they tried to view the site on their crackberry and had serveral questions around this after trying to view the 1024×768 design.
- and this was the kicker - and reason for me writing this is today I hooked my home PC to my TV - this has been on my list for over a year but - even on my 52incher it took several modifications and adjustments to be able to even view simple text - I know this is partially due to the differences between TVs and monitors but it was surprising for me to say the least. BTW - browsing the web on your TV is AWESOME!M
Questions for anyone listening:
- is there a certification you can get for your application or a set of automated testing you can run to check your site against known accessibility standards.
- if this doesn’t exist it should! and after a quick Aftervote lookup have a look for such a thing - i found nothing that jumped out at me… sadface
- Any great resource sites or articles out there on accessibility within applications?
Listen to this podcast
Nov
23
DocProject performance
November 23, 2007 | 4 Comments
Recently for an internal project I wanted to generate documentation from my project for other developers
inhouse to use when using my library. So I went on my way of selecting a documentation tool for Visual Studio. As this was an internal project free was a major preference. After attempting to use several off the shelf trials for my limited purposes they all failed me. So I moved to opensource and NDoc which I had no luck with and only caused me grief and very undocumented almost seem dead(If there is a solid resource or new project for this please let me know).
During all of this I stumbled across a set of CTP/RC namely Sandcastle with DocProject from Microsoft and another project on codeplex; as this was an inhouse project a working CTP was more than acceptable. Both products installed without issue and installation docs were spot on and helpful.
Now this is where it gets weird. Sandcastle and DocProject(mostly sandcastle from my limited understanding of how this all goes down under the covers) are slow and unperformant. During my first few attempt to build the documentation I recieved ‘OutOfMemory’ Exceptions and slow build times when successful - both of which are always great to see but my machine was not maxed for resources. However I stumbled upon a solution bored while waiting for the documentation to generate after some changes to my library…
Solution: This is going to sound nutz but open a dialog in VS while building documentation and you will have no problem and you will see an major speed improvement! what!?!? yeah I know but the reason actually makes sense and I found more details on the DocProject Codeplex discussion board as I was going to post myself - Doc generation Performance.
From the lead developer of DocProject:
Sorry, but that is funny :)
I haven’t tried it myself but I think the reason for the speed-up is that Build Assembler is being executed on a background-thread and when you open a modal dialog Visual Studio no longer has to process Windows messages for the main UI, which gives the background-thread more processor time. When Build Assembler is finished control is returned to the main UI thread, which is currently blocked by the dialog so it waits for you to close it before starting the next build step, #9.
I don’t think it has anything to do with what version of DocProject you are using, and I don’t think it’s a bug. But if you find that it improves performance on your system then you should try building outside of VS using the DocProject External UI. I’d like to know what the difference is in performance on your system between building within VS and outside.
- Dave
I agree with davedev that it is a quirky side effect but if it gets me results more quickly I’ll take it - glad I stumbled upon it.
Another example of CodePlex doing well for the community. And thanks to davedev for DocProject.
Further information:
Listen to this podcast
Nov
13
How to handle downtime
November 13, 2007 | Leave a Comment
I follow 37 Signals fairly closely. I agree with them in many areas of development and they do a fantastic job of what they do. I have red their book Getting Real and I follow several of their blogs.
Yesterday they experienced some downtime, its was late here when it occurred so I wasn’t even online, so didn’t effect me, when I logged in today the site was working as normal, however there was an announcement stating:
Downtime summary
On the evening of Monday, November 12, we experienced a few of hours of downtime due to an explosion at our main data center in Dallas, TX. This event led to the eventual failure of a backup cooling system. Without adequate cooling, our servers had to be shut down to prevent permanent damage. We have detailed the events that led to the downtime. We deeply apologize for any inconveniences this may have caused and will work hard to make sure we reduce the likelihood of this happening again. Thanks for your support.
Then within the blog post they outlined all of the details of the outage. What occurred, timeline and how they plan to improve and ended with:
We apologize for any inconvenience this downtime caused your business. If you feel you were significantly impacted by this downtime, please send an email to support and we’ll credit you for the downtime.
I should also state that I have used their service for almost a year now and this is the first outage I can name - so they do very well regarding uptime. Rather than this making me think about the instability of their system or question the quality of their hosted product it increased my faith in them overall. Plan to see this
All of this said, I did run a complete backup from BaseCamp today. This makes me feel even safer. =) and I will be more frank with my users when it comes to outages.
Listen to this podcast
Oct
15
Never let a programmer fix your laptop power brick
October 15, 2007 | 1 Comment
True story. The power cord on my Gateway M275 stopped working last night. Laptop works but wasn’t charging. Unsure which component was the culprit I took it to the office today to hook it up to a Volt Meter - one of the guys at the office has one - and asked for him to have a look at it. Then I left to go the gym when I came back to find this on my chair…
Picture isn’t clear in this one but left Post-it says “Works Now” and right one says “Extra Parts”
Closer look
Anyone willing to use this can have this “working now” power brick for free.
Items removed during “refactoring”
Thanks guys! I’m assuming since he was a programmer he tried to “refactor” the brick. Notice the skill and the craftsmanship. I think they had to go buy electrical tape because I’m sure we didn’t have any.
If you really are having issues with power on your Gateway, I apologize but my fix for the problem is apparently to buy a new power brick. =)
Update: A few people contacted me asking if it actually works - it doesn’t work. =)
Listen to this podcast
Oct
3
10 Reasons Why Making .Net Source Code Available is Great for .Net Developers
October 3, 2007 | 1 Comment
Today Microsoft announced that they will be releasing the source code for .net. Listed below are my top 10, my current opinions, of why this is a great move and should improve my own and most other’s development experiences:
1. Can you say debugging
When Scott Gu announced on his blog today that Microsoft was releaseing the source code for .Net Framework Libraries, while I grinned widely, he reviewed how this will drastically improve debugging capabilities within Visual Studio. There are sooo many times that I wished I could step into a class/method/property to see what it was directly affecting - when I was intrigued enough, or stuck, enough, I would use Reflector(see point #2) to see what the code was all about but Scott’s scenario definitely welcomed where you can just walk through the code directly.
A few development scenarios where I can see direct and immediate benefit are ViewState debugging and serializing as well both of which are like picking the lottery numbers when you hit the wrong types of issues.
2. Source code is there for the taking already, this just makes it easier
.Net’s source is there for the taking really now, programming languages that work with the .NET Framework compile into an intermediate language known as the Common Intermediate Language, or CIL - and the core classes are not obfuscated, they just need to be decompiled to have the source made available. With Reflector for .NET this is made relatively easy however, nothing like accessing directly while debugging within Visual Studio. For this reason alone Microsoft is just really improving the tools to access this code.
3. Success of Codeplex and MS Shared Source
I LOVE Codeplex. To me the layout and structure is much improved over that of Source Forge and other project hosting sites. I find it is more inviting and much more streamlined to find the projects I might be interested in, a big part of that is that there are a fraction of the projects on CodePlex(2381) vs Source Forge(155,585). There are several projects which have thrived as open, shared source, on Codeplex, namely AjaxControlToolkit which I follow daily via RSS. This announcement shows a greater commitment to Shared Source which with the interaction, ability to vote on issues that are important to you, and all other advantages means an improved development experience.
4. Opensource community love (or at least less hate)
While I will say now that Microsoft’s move to open up the covers of .net will be fended off by the Linux fanboys (see Slashdot discussion) of the internet and beyond it does have to come with some respect for the fact that they are overall improving developer experience and listening to their community. If nothing else this removes the argument that .net is a closed platform therefor is not worth discussion, as much water as that doesn’t hold I will be glad to see it less applicable.
5. Developers can learn from Framework
In my days with Borland Delphi, which allowed you access to a huge percentage of their core libraries, I learned the language, best practices and some cool tricks along the way in a large part from the source of the library they provided. If .net had been the same when I had made the move it would have decreased the time it took me to get comfortable dramatically. This will be the case now and when learning new features made available, e.g. Linq, I can have a look at how it is implemented when trying to decided on best plans of action, key area this will help with is efficiency, which has always been difficult when working with core .net classes as you are not aware of implementation details without some work(see #2).
6. Trust level of source
Seeing is believing. If I had the choice between being told that something will behave in a certain manor versus reading the code that states how it will behave, I will take reading the source every time. The released version of the source will become what I reference for documentation from day one.
7. Community feedback + More rapid innovation
After the release of the source with so many people, I will be one of them, looking at the code, brainstorming sessions are natural, whether it is about using the software or moving it forward. If Codeplex is used as a host of this code it will give a central location to follow along with the development and issues related to features within the framework. This will be greatly welcomed.
8. Open Source makes you responsible
While many companies allow the quality of their source tree to have many fudges and cludges, not to say that .net has many of these(or none), when you are releasing code which will be critiqued by a huge population of developers more time will be spent on the quality of the end product. All non shared/open source code projects in the world could be improved by this requirement. There is no negative to this other than development effort required is increased for the party releasing; this is something I am comfortable with since this one doesn’t land on my plate. =)
9. Directly opens feedback line for non-partners
There are many patches and hotfixes which are made available to partners long before they are made available to Microsoft’s general user-base. This could change, to some extent, with the advent of Shared Source for the framework. If nothing else information regarding the fact that patches or fixes are available should be more centralized and easier to find, again assuming that Codeplex is used. Instead of sorting through information for all MS products, items related to .net should be relatively more centralize. This could be wishful thinking however I can dream.
10. They seem to be doing it correctly (with a reservation to change my mind)
One of the biggest arguments you will hear when people are dismissing the clout of this announcement will be surrounding the non-modifiable license release of the .net classes (i.e. you cannot change the source); for me this is one of the most positive details of the announcement. The number one reason why I moved to .net from other platforms, namely Java, PHP and Delphi, was the fact that I did not want 20 different libraries available, with no communication between projects to solve the exact same problem. Dino Chiesa, Director of the .NET Platform commented on this fact and I fully agree with him:
There’s still a value in having a reliable, dependable platform, … We don’t want developers making mods to it.
Had Microsoft opened the floodgates to every developer and company having their own “flavors” of the framework I would have caught the next ship to another development platform. For this I again I give my compliments.
On the flip side I should note one major issue which could come from this which is when the source is available this will make it much easier to track down holes in the software. This is true of all open-source software however as .net is used more and more in the core of Windows releases(hopefully which are better than
ME2 but that is another subject) items found in the core classes will cause more issues. (This may end with a positive where release cylces are shortened.)
Finally, a question this raises for me is if they are opening the source - where does this leave Mono and projects of the sort? I do not follow Mono very closely, and won’t until the community says it is getting close to usable, but my understanding is that they are building using the specifications, Is this true? and what problems does this create or remove(if any)? If anyone has an knowledge on this I would be intrigued to hear it.
Listen to this podcast
