Wednesday, September 03, 2008 6:33:42 AM
I recently discovered OpenDNS, a free DNS service that has been around for a couple of years. One of the features of OpenDNS is that it can block unwanted Web sites before they even reach your computer. In case you're not familiar with DNS (domain name service), here is a simple explanation of how it works:
- In your Internet browser, you type in a Web site address or click a link to a Web site (i.e. www.google.com).
- Your computer sends a request to your DNS to "resolve" the name of the Web site to its IP address.
- The IP address tells your computer where to go to get the Web page you requested.
OpenDNS maintains a catergorized list of web sites. When a computer configured to use OpenDNS requests an inappropriate web site (intentionally or by accident), the site is effectively blocked before it ever reaches the computer.
Normally your DNS is automatically assigned to you by your Internet service provider (ISP). However, it's not very difficult to change these settings. And, if you have a high-speed Internet connection that is shared among multiple computers in your home, chances are you can configure your network router to use OpenDNS and every computer on your network will automatically be protected. OpenDNS will step you through the process.
By creating an account and registering your computer or network, you can customize which categories of Web sites are blocked. You can also view activity reports, including a list of Web sites that have been blocked.
OpenDNS can also be used outside of the home. Many businesses, schools, libraries, and other organizations are using OpenDNS to filter and protect users from inappropriate or harmful Web sites.
OpenDNS is not a total solution for Internet security. It can only block "known" Web sites, although the OpenDNS community appears to be very active in keeping the service updated. However, OpenDNS is a very useful service that can go a long way to protect your computers, and more importantly your family, from the dangers of the Internet.
Monday, August 25, 2008 3:05:54 PM
DevExpress is giving away more than 60 WinForms and ASP.NET controls. I haven't used them before, but it appears to be a great collection. Registration required.
Friday, June 20, 2008 9:07:00 AM
Okay, this scenario might not be all that common, but in case someone else out there needs some tips on getting this to work, I hope this helps. I spent quite a bit of frustration on this one.
I have an ASP.NET web application that uses Microsoft AJAX UpdatePanels and embedded User Controls. In this particular case, I wanted to try out jQuery in one of my User Controls. The User Control uses an UpdatePanel, and the User Control itself is dynamically loaded in an UpdatePanel on the parent page. Here are the things I ended up doing in order to get jQuery and UpdatePanel to play together.
Registering jQuery Scripts
Since I'm not planning to use jQuery everywhere in the Web application, I need a way to register the scripts I need from the User Control. In my search, I came across a Rick Strahl post Implementing a jQuery-Calendar ASP.NET Control that was exactly what I needed. This post led me to his earlier UpdatePanels and ClientScript in custom Controls for the necessary ClientScriptProxy code, which is a great utility class for registering any client scripts, not just jQuery. However, I started getting a Sys.ScriptLoadFailedException, which led me to Sys.ScriptLoadFailedException when adding ScriptReferences. To work around this, I added the following to the end of my jquery.js script file (and other script files I was registering).
if( Sys && Sys.Application ){ Sys.Application.notifyScriptLoaded(); }
Client Script for the User Control
My User Control is dynamicaly loaded, so simply putting a script block in the .ascx template doesn't work in this scenario. Also, the standard jQuery $(document).ready doesn't work. I believe it's because of the way the DOM is manipulated by the UpdatePanel. So, borrowing a couple of ideas from Giving Precendence to a Specific Asynchronous Postback and jQuery Event Binding vs. ASP.NET AJAX UpdatePanel, I created another script file named init.js that contains the following code:
function ApplicationLoadHandler(sender, args) {
// InitScript is a custom function
// registered from the User Control
if(typeof InitScript == 'function')
InitScript();
}
if( Sys && Sys.Application ){
Sys.Application.add_load(ApplicationLoadHandler);
Sys.Application.notifyScriptLoaded();
}
In my User Control's code-behind, I need to override the OnPreRender to register my script files and custom script block.
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
// *** MS AJAX aware script management
ClientScriptProxy p = ClientScriptProxy.Current;
// *** Register resources
this.RegisterResources(p);
}
private void RegisterResources(ClientScriptProxy p)
{
p.RegisterClientScriptInclude(this.Page, this.GetType(), "_jqueryjs", this.ResolveUrl("~/client_scripts/jquery.js"));
p.RegisterClientScriptInclude(this.Page, this.GetType(), "_initjs", this.ResolveUrl("~/client_scripts/init.js"));
StringBuilder sb = new StringBuilder();
sb.AppendLine(@"
function InitScript() {
// control-specific code goes here
}
");
p.RegisterClientScriptBlock(this.Page, this.GetType(), "_init_" + this.ID, sb.ToString(), true);
}
Now all I have to do is customize the InitScript() in my code-behind to do useful things with jQuery.
Hope this helps!
Tuesday, June 10, 2008 9:27:02 PM
Rumors of my demise have been greatly exaggerated. I've had several ideas for blog posts recently, but just haven't sat down and wrote them out.
My outdated video camera is nearly 10 years old, so I've been thinking about getting a replacement. The Flip Ultra has been on my radar screen for quite a while. With Scott Hanselman's glowing review and the release of the 2nd generation Flip Mino, I was finally convinced. As an early Father's Day gift, I ordered one online and it arrived today.
Wow. I just can't get over how much I like this gadget. It's no bigger than a point-and-click camera, it's ridiculously simple to use, and the software to manage your movies is right on the camera. You just plug the camera into any PC (or Mac, apparently) and go. Within minutes of opening the box I had recorded my first short videos and transferred them to my PC. I like the fact that it comes with a TV RCA audio/video cable so I can show videos when visiting friends or family. I haven't tried all the features, but it appears that you can easily convert, upload and share videos online, too.
As other reviewers have stated, the light sensor does an excellent job of quickly adjusting to any light conditions. Video quality is passable, but it's certainly good enough for casual use. To me, the built-in rechargeable battery in the Flip Mino is well worth the premium over the Flip Ultra. I'm not too crazy about the touch-sensitive buttons surrounding the big, red record button, but that's not a show-stopper. I'm also impressed with the short time it takes to power up the device and start recording.
So far, I am absolutely thrilled with this purchase. I once read (regarding photography) the best camera is the one you have with you. With the Flip Mino's small form-factor and easy-to-use features, I see my family and I recording and sharing a lot more memories in our future.
Saturday, February 02, 2008 3:54:05 PM
I was recently contacted by a high school senior who wanted to know more about my career in order to complete a school assignment. Following are the questions and my answers. How might you have responded? Or, what questions might you have asked?
What is your job title?
Chief Software Architect
What was your major and is this the major I would need to pursue for this career?
My major was Computer Science. Yes, this is typically the major you would choose to pursue a career in software development.
What are your typical work hours?
For the most part programming is a 40-45 hour/week job. However, there are sometimes deadlines or emergency bug fixes that require more hours.
What is the best / worst thing about your job?
The best and worst thing about programming is adapting to rapid-changing technology. You really have to develop the attitude of continuous education to stay on top. It is this challenge that keeps me excited about my work year after year, pushing myself to learn more and get better at what I do. However, I imagine that any career would require continuous learning to be very successful.
What school has a good program for your major?
I’m sorry, but this is something I’ve really grown out of touch with. With the rate of change of technology, a school that was great even five to ten years ago might no longer be the best college for a career in computer programming. My guess is the big “tech” schools are going to have the best programs, but any major university or private school is going to have good program for computer science in order to stay relevant.
Did you have an internship in college? If yes, in what?
I didn’t have an official internship, but I did work for a software company during my last year of college doing customer service and technical support over the phone with its customers. I got the job through a “temp” agency and was later hired full-time. It wasn’t part of my job, but I found opportunities to use my programming skills to make the job easier for myself as well as others in my position. This was an invaluable experience. As a manager who has hired many people over the years, internships make a huge difference.
What classes do you recommend that I take?
Computer programming at its core requires a lot of analytical thinking, methodical problem solving, and attention to detail. Any classes that will help develop these skills will be of great benefit. However, there’s a lot more to creating software than logic, and there are many areas of software development you can specialize in that have nothing to do with learning computer languages or a bunch of math. For instance, you might want to take art, photography, media, or communication classes to help develop good design skills in order to make software easier to use or aesthetically pleasing. A good understanding of psychology or sociology could be applied to help software more appealing to individuals or large groups of people such as online communities on the Internet. Speaking of the Internet, any classes (regardless of major) that cover the use of it would be valuable. Any classes in project management or time management would also help. The better question might be, “what classes would you not recommend?” I can’t think of any, because with any class there is probably some way it could be applied to an aspect of software development.
Is your job in an office setting or do you travel much?
My job is in an office. I’ve never had to travel much, but there are plenty of consultants who do. I also work from home quite a bit (telecommute). This is also one of the best things about my job, as it gives me a lot of flexibility, more time with my family, and less time spent on the road fuming at traffic conditions. Computer programming is one of the few jobs where telecommuting can work very well.
What made you interested in this career?
From an early age I loved to tinker with computers and spent countless hours on them, but I did not know this would be my career. I changed my major in college several times, including architecture and business administration. One day I realized that the thing I liked most about the classes I took were the opportunities to learn or complete assignments using a computer. For architecture it was learning computer-aided drafting (CAD), and for business it was learning how to create spreadsheets in my finance classes. After taking a class in programming, I was hooked and knew without a doubt this was what I wanted to do. To me, software development is a technological playground with an unlimited, ever-growing supply of toys. The things you can create are only limited by your imagination.
Monday, December 31, 2007 4:46:00 PM
I thought this was such an awesome post that I had to share it here. A few years ago I read Larry Burkett's Business by the Book, which I also highly recommend.
Old Ideas for a New Year
Here are ten New Testament Scriptures to help you in setting workplace goals, organizing your management strategies and writing up your New Year's work/life resolutions.
- When the boss isn't looking: Whatever you do, work at it with all your heart, as working for the Lord, not for men, since you know that you will receive an inheritance from the Lord as a reward. It is the Lord Christ you are serving. (Colossians 3:23-24)
- About that temper tantrum or water cooler gossip: If anyone considers himself religious and yet does not keep a tight rein on his tongue, he deceives himself and his religion is worthless. (James 1:26)
- Management training that works: Who is wise and understanding among you? Let him show it by his good life, by deeds done in the humility that comes from wisdom. But if you harbor bitter envy and selfish ambition in your hearts, do not boast about it or deny the truth. Such "wisdom" does not come down from heaven but is earthly, unspiritual, of the devil. For where you have envy and selfish ambition, there you find disorder and every evil practice. But the wisdom that comes from heaven is first of all pure; then peace-loving, considerate, submissive, full of mercy and good fruit, impartial and sincere. Peacemakers who sow in peace raise a harvest of righteousness. (James 3:13-18)
- On looking the other way: Anyone, then, who knows the good he ought to do and doesn't do it, sins. (James 4:17)
- On not paying enough--or not paying at all--and even (sometimes) "let's see how cheaply we can hire them" : Look! The wages you failed to pay the workmen who mowed your fields are crying out against you. The cries of the harvesters have reached the ears of the Lord Almighty. (James 5:4)
- On anger and intimidation as management styles; on filling out performance evaluations; on talking about the boss behind his/her back: Do not let any unwholesome talk come out of your mouths, but only what is helpful for building others up according to their needs, that it may benefit those who listen. (Ephesians 4:29)
- On doing it because everyone else is; or because it's legal: See to it that no one takes you captive through hollow and deceptive philosophy, which depends on human tradition and the basic principles of this world rather than on Christ. (Colossians 2:8)
- On wages, working conditions and management styles: Masters, provide your slaves with what is right and fair, because you know that you also have a Master in heaven. (Colossians 4:1)
- On career planning and assessment: Make it your ambition to lead a quiet life, to mind your own business and to work with your hands, just as we told you, so that your daily life may win the respect of outsiders and so that you will not be dependent on anybody. (I Thessalonians 4:11-12)
- How much is enough? But godliness with contentment is great gain. For we brought nothing into the world, and we can take nothing out of it. But if we have food and clothing, we will be content with that. People who want to get rich fall into temptation and a trap and into many foolish and harmful desires that plunge men into ruin and destruction. For the love of money is a root of all kinds of evil. Some people, eager for money, have wandered from the faith and pierced themselves with many griefs. (I Timothy 6:6-10)
Let this be the year people mark you as the go-to person for competence, integrity and compassion; but even more urgently, let this be the year they mark you as the person they seek out first when their little girl needs prayer, or they need hope or help.
Monday, December 31, 2007 4:34:00 PM
Wow, I can't believe that 2008 is here. The years seem to get shorter and shorter. Where did the time go? I hope you made the best of 2007. I wish I could say that I did, but I know I could have done more in the areas that really matter.
I'm in my second year of Men's Fraternity at my church, and we're going through the series titled "Winning at Work and at Home." Men's Fraternity has helped defined for me what a "real man" is supposed to be, and really challenged me to "step up." There are so many important things I have let slip because of my busy-ness and distractions, or just plain laziness. My natural tendency is to be passive, but what my family needs from me is Godly, servant-leadership. So, looking to 2008, here are the top five things I pray will be my prorities.
- Read through the Bible. I desparately need the daily discipline of spending more time in God's Word, seeking wisodom, and cultivating a deeper relationship.
- Quality and quantity time with family. My #1 responsibilty outside of my relationship with God is to love my wife and to grow my kids in the brief time they've been placed in my care. For kids, love is spelled T-I-M-E. I've also learned through Men's Fraternity that the best gift I can give my kids is to love their Mother.
- Improve my health. I just finished reading Sugar Busters! and I'm looking forward to making some healthy changes to the way my family and I eat. I've known for a long time that I'm supposed to be the spiritual leader in my home. Although my wife does the vast majority of the cooking, I've recently been convicted that the physical health of my family is ultimately my responsibility as well.
- Improve my friendships. God has placed some awesome people in my life, and I need to make sure they know how much I appreciate them. I also need to be a little more "on purpose" with all the relationships in my sphere of influence.
- Live more with less. Be smarter with money. Simplify. Get rid of the clutter. I guess it all boils down to being a better steward of the time and resources God has blessed me with.
There are certainly many, many more things I want to accomplish this year. Honestly, it's been a while since I really worked hard at sharpening my development skills and learning new things. As long as I "keep first things first," I believe the rest will follow.
What are your top five for 2008?
Thursday, November 22, 2007 10:42:23 AM
The only catch is that it is the older Camtasia Studio 3. Still, it is an awesome product. I've used version 3 for several years and only recently upgraded to version 5.
I've been using Camtasia Studio for several years to build demos and tutorials. I've also found it very useful for sharing features with customers while an application is still in development. The customer gets to see how something works long before they can use it hands-on, but still be able to provide feedback early in the process so you don't get too far off track.
Camtasia is great way to add help to your Web applications. It's so much easier to show a user how to accomplish tasks in your application than to try to spell out the steps in documentation. Who reads documentation, anyway? ;)
Wednesday, October 31, 2007 2:52:34 PM
In case you haven't already seen this, I wanted to let you know about Microsoft SharedView. I tried it out the other day with two other developers, and it worked very well. You can share a single application or your entire desktop. You can allow others to take control so you can collaborate. According to Microsoft's forums, there will remain a free version with at least the same amount of functionality that is in the current beta.
This could be useful not only for conferences and presentations, but also for paired programming with remote developers and as a support tool for family and friends.
- Hold more effective meetings and conference calls
Connect with up to 15 people in different locations and get your point across by showing them what's on your screen.
- Work together in real time
Share, review, and update documents with multiple people in real time.
- Use when and where you want
SharedView is easy to use, from anywhere, at a moment's notice.
- New in Beta 2!
Now SharedView is even easier to use. We've improved performance and the sign-in and join experiences, and added group chat so you can to send messages to the other people in a session.
Tuesday, October 30, 2007 8:04:13 AM
I can now say that ChristianASP.NET proudly supports the award-winning content management system mojoPortal :) Congratulations, Joe!