In this post I am trying to test Dragon simply speaking. It bouts 13 minutes ago I installed the software. I figured that it would be a good way for me to write my book. So to test it out I am speaking on this blog post. So if you are reading it you may notice some misspellings.
Using the software takes some getting used to. Unless you have a fast processor it is hard for the software to keep up with my voice. There are also some slight delays for when I speak to the translation on the screen. However at this point I am going to type/talk fast to see how well the software can keep up. The idea behind using this software is so I will be able to write a book after.
I haven’t been able to figure out how to get the system to do a character return, but I guess that is something that I will have to do at a later time. I didn’t notice that when I speak faster the software does keep up with me. It is only when I talked slower that the system doesn’t function as well.
Overall I must say that I am pretty impressed.
If you are interested in writing a lot of blog posts, where documents, or writing a book, you may be interested in using the software.
http://phplens.com/lens/php-book/optimizing-debugging-php.php
This article from PHPLENS contains great information for optimizing PHP.
Today I received some wonderful news . . . Fusion Charts is now open-sourced! Now, normally, it wouldnt make much sense to announce something like this, except Fusion Charts just happens to be one of my favorite tools to use to make dashboards for our clients. Now that it is open source, we will gladly include it in some commercial products as well.
If you would like to get your hands on this wonderful piece of software, head over to http://www.fusioncharts.com/free/and give it a try!
I was reading my eWeek this week and I read an article for a new product from Google called Google Wave.
After reading the article, I was confused. What was it supposed to do? It looked like an email system with extra features.
After sitting through the demo, I finally got the concept. Google Wave is a new service that blends email, instant messaging, file sharing, and software collaboration into one giant messaging center.
In other words, this is Google’s vision of what collaboration should look like in 2009. And I must say, im pleasantly impressed. From a single application, all of your daily communication tools are combined into conversations called “waves”. You can even have your own “wave” server because Google has made the technology open-sourced.
I believe this will be the future of collaboration as we know it.

Google Wave Screenshot
Wonderful news from Mega Input Data Services, Inc. A product that we have been working on for some time now is in its Beta stages. That product is named Hiring Crunch! Hiring Crunch was designed to fill a need in the marketplace for placing an inexpensive job board on company websites. If you would like to be a beta tester, please visit Hiring Crunch.com and register.
From its website, SlickMap CSS is a simple stylesheet for displaying finished sitemaps directly from HTML unordered list navigation. It’s suitable for most web sites – accommodating up to three levels of page navigation and additional utility links – and can easily be customized to meet your own individual needs, branding, or style preferences.
Awesome tool! You can download it at http://astuteo.com/slickmap/
SitePoint’s Craig Buckler blogged yesterday about what he sees as the next big thing in web design: mega drop-down menus. They’re cropping up everywhere, and best of all, usability guru, Jakob Nielsen thinks they’re quite good — so you can expect to see even more of these very soon. Here’s what he had to say about this new trend:
Given that regular drop-down menus are rife with usability problems, it takes a lot for me to recommend a new form of drop-down. But, as our testing videos show, mega drop-downs overcome the downsides of regular drop-downs. Thus, I can recommend one while warning against the other.
Of course, Nielsen’s article includes some solid advice on the most usable way to implement these. Here’s what he recommends, in a nutshell:
So how would we go about implementing these? While it’d be great to do all of this in pure HTML and CSS, it’s impossible at the moment to get those nice half-second delays — and of course there’s a pesky problem with Internet Explorer 6, which only supports :hover on anchor elements. Instead, I’ve whipped up a solution using jQuery and a very nifty plugin called hoverIntent.
Let’s imagine we have a client, Mega Shop. Their designer has sent us a mockup that includes some mega drop-down menus. You can see the relevant part of that mockup below (full sized version here).
First: the markup. I started out with a fairly simple menu based on an unordered list. The markup looks like this:
<ul id="menu">
<li><a href="#">Home</a></li>
<li><a href="#">Stuff for him</a></li>
<li><a href="#">Stuff for her</a></li>
<li><a href="#">Stuff for kids</a></li>
<li><a href="#">Stuff for pets</a></li>
</ul>
I’ll add a div after each of the drop-down links — these will contain the contents of the menu. Also, I’d like to have a way to indicate that there’s a drop-down choice on those items, so I’ll also add a class, mega, to those list items. Finally, I want to make sure that this menu makes sense when viewed without styles, and since each category will act as a kind of heading, I’ll add some heading markup to the items. Here’s a single list item:
<li class="mega">
<h2>
<a href="#">Stuff for him</a>
</h2>
<div>
<!-- Contents here -->
</div>
</li>
Next, let’s add some content to those divs. Here’s one:
<li class="mega">
<h2>
<a href="#">Stuff for him</a>
</h2>
<div>
<h3>Menswear</h3>
<p>
<a href="#">Shirts</a>,
<a href="#">T-shirts</a>,
<a href="#">Accessories</a>,
<a href="#">More...</a>
</p>
<h3>Gifts</h3>
<p>
<a href="#">Sporting goods</a>,
<a href="#">Gadgets</a>,
<a href="#">More...</a>
</p>
<h3>Clearance!</h3>
<p>
40% off all photo accessories
this weekend only.
<a href="#">Don't miss out!</a>
</p>
<a href="#" class="more">
More stuff for him...</a>
</div>
</li>
Of course, I’ll need to add the markup to represent the site’s heading. Unfortunately, we’re out of time to discuss that in detail, but you can see what I’ve done in our first example, unstyled.html.
Next, I’ll lay on some style. For now, we’ll just concentrate on the most pertinent parts of styling the list elements and the drop-downs. However, if you’re curious to see the entire stylesheet, you can view it in full in our second example, styles.css.
Each mega list item is set to display inline to achieve that nice horizontal bar. We’d like the drop-down menus to overlay the page, immediately under the list item; to achieve this we’ll use position: relative on each mega list item, and later we’ll use position: absolute on the divs:
ul#menu li {
display: inline;
position: relative;
}
Each div is styled up to resemble the mockup we received from the designer. I’ve used position: absolute here to align them flush left with each list item, and place them just underneath. I’ve also used display: none as a catch-all for all divs that are descendants of that menu, which will help to hide the one that’s sitting underneath the homepage link:
ul#menu div {
display: none;
}
ul#menu li.mega div {
width: 18em;
position: absolute;
top: 1.6em;
left: 0em;
}
I’ll add another class for those list items, hovering, and make its child div elements visible with display: block. Later, using JavaScript, I’ll add the hovering class to the list item when the mouse hovers over it, and remove the class when the mouse leaves the area:
ul#menu li.hovering div {
display: block;
}
Now, let’s add the JavaScript. I’ve chosen to use jQuery for this example; of course, you’re welcome to write your own scripts or use a different framework. You might be thinking it’s a bit of overkill to use all the overhead of a huge library for one little menu. This is just one part of our hypothetical ecommerce site, however, and I’d almost certainly be planning to use jQuery for other parts of the interface as well.
First, of course, I’ll include the jQuery library. Next, I’ll also include a very nifty plugin called hoverIntent. jQuery has its own hover event, but it fires as soon as the mouse touches the target area. Instead, we want to implement the delayed effect Jakob Nielsen recommended: that is, we’d like to wait for the user to stop moving their mouse. The hoverIntent plugin provides for this by taking the mouse movement speed into account.
First, we’ll need to write a couple of functions to add and remove the hovering class — that’s the class which switches on the display of the mega item:
function addMega(){
$(this).addClass("hovering");
}
function removeMega(){
$(this).removeClass("hovering");
}
And then, we’ll use the hoverIntent function to fire off those functions when we hover over an item or leave it. First, we need to set some configuration variables:
var megaConfig = {
interval: 500,
sensitivity: 4,
The interval parameter specifies a number of milliseconds (that is, thousandths of seconds) which hoverIntent uses to check on the mouse’s movement. The sensitivity parameter specifies the number of pixels a mouse should have traveled during the interval parameter in order to be considered moving. If the mouse has moved less than that, the mouse is considered to be hovering.
over: showMega,
The over parameter specifies a function that will be called when the mouse has stopped.
timeout: 500,
out: hideMega
};
The timeout parameter specifies how long we’d like to wait in milliseconds before performing the mouse out function. The out parameter specifies what to do once that delay has passed — so in this example, the hideMega function will be called after 500 milliseconds.
Finally, we’ll attach the hoverIntent function to the mega list items, telling it to start looking for hovers and mouseouts, using the configuration we set up:
$("li.mega").hoverIntent(megaConfig)
And that’s about it!
Time to test out our menu! You can see the completed demo with the markup, style, and script in our final example, completed.html.
There’s a lot more that can be added here — for example, a drop-down menu can have some accessibility problems, so it’d be good to find a way to also add keyboard actions to this menu. It’d also be nice to add some more interesting design elements to these menus, like icons or column arrangements. For now, though, this newsletter is quite long enough, and what we have here is quite a solid start!
I began searching for a great Python framework and decided that the be way to find the best framework was to try them all and see which one worked best. This lead me to read Learning Website Development with Django by Ayman Hourieh; offered by Packt Publishing.
If you are interested in learning Django, I found that this book is a GREAT place to start. It takes you from installing the framework, all the way through creating a complete social bookmarking application. The book has a great overall pace to it; not too fast nor too slow.
A great aspect of this book was that it took you through the development of an application; from start to finish. As with starting with any new framework, it covered, in depth, the topic that I am generally most intrigued with: User Management and Registration. Django has a built in User Management and Registration system but I believe that it would have been great for the author to extend the default registration system provided.
Chapter 3: One thing that I feel that the author should have mentioned early on in the chapter is the importance of indenting your code blocks. Not doing so causes errors when using the code in the developement server. Considering Django gives the user the user module by default, it would have been good for the author to extend the table by at least one field (add a notes field for example) as to teach the user to handle such a situation. Also, the use of maxlength has been replaced with max_length; this may cause some new people to Django problems.
PROS
CONS
OVERALL
Overall, I really enjoyed this book and feel that it is a fantastic introduction to Django. While it would have been great to show off another application, I feel that the book gave a complete overview of the framework and provides a great foundation and a level of understanding fo building basic applications OR reading more in-depth Django books.
This book is offered by Packt Publishing. I will be writing a review on this book very shortly.
Over the next week, I will be designing a workorder management system system that will be used by my application development business, Mega Input Data Services, Inc., in order to track projects done on retainer with our clients.
As many of you may know from reading my posts here lately, ive become an avid fan of Python and have been testing its many frameworks to decide on which one I like the best. With that being said, here are the frameworks that I will be utilizing for my test:
Each system will utilize the same web template and will be judged on the following criteria:
The last point is pretty subjective, however, it will allow for my point of view to be expressed on the use of the framework.
As a baseline, I will develop the application in PHP to which the Python equivalents will be judged. Let the games begin!!!!
Just read a wonderful article at Tech Republic. It is on this program called ViewVC, a Python based web front end to Subversion. Here is an excerpt from the article>
Vincent Danen covers the basics of Web-based ViewVC, which is a Web-frontend to both subversion and Concurrent Versions System (CVS). ViewVC is written in python and is extremely simple to install and use.
Subversion is a fantastic version control system that is useful for development, keeping track of configuration file changes, document revision history, and so much more. A number of tools exist for a variety of platforms that allow you to inspect the contents of a subversion repository, view history, generate diffs between revisions, and more. Some are free, some are commercial. All are, generally speaking, useful in that they allow you to nose around in a repository and track changes much easier than is possible to do with command line clients.
One such tool is the Web-based ViewVC, which is a Web-frontend to both subversion and Concurrent Versions System (CVS). ViewVC is written in python and is extremely simple to install and use. To begin, download the tarball archive.
I recently completed reading of the Packt Publishing book Expert Pyton Programming by Tarek Ziadé. Overall, as a Python developer, however not quite an expert yet (but working on it), I did find that the book was not quite on the “Expert” level as much of the topics I know as being an intermediate Python programmer.
Expert Python Programming is a useful guide that takes you from the installing Python and setting up your environment all the way through documentation and Test-Driven Development. As I read through the book, as I elluded to earlier, the book isnt so much of an “Expert” book as it is a Python user guide. The book takes you through the Python basics, offers some “intermediate” items, and concludes with “some” expert techniques.
I didnt feel that the book had an overall “flow” to it. The chapters themselves were great from an information standpoint, however, if you didnt follow the chapters in order, you will still come to the same conclusion. For this reason, I consider this book as more of a guide (a book to grab as a reference to a technique).
With all of that being said, I really enjoyed the book. The book gives a “high level” overview of several advanced Python modules such as itertools and offered several techniques different from the way that I have been currently applying functions, etc. Being an intermediate Python developer, the book seemed more for someone with my skillset than an expert.
PROS
CONS
OVERALL
Overall, I feel that this was a great book that I would go back to as a reference. However, I am still on the lookout for an “Expert” level book!
I was using StumbledUpon today and came across a FANTASTIC website today; Beagleboard.org!! Everyone that knows me knows that I am a technology junkie and this product is right up my alley!
The Beagle Board is an ultra small, linux project board for the low low price of $149.99. A fantastic deal. Furthermore, there is a companion product that features a tiny video projector. Both products can be purchased from Digi-Key!
I will be posting followup articles on these products as I receive them.
I was reviewing a website at http://www.acceleratingfuture.com/michael/works/intelligentfailure.htm about why people intelligent people fail and I think its a great read for entrepreneurs.
1. Lack of motivation. A talent is irrelevant if a person is not motivated to use it. Motivation may be external (for example, social approval) or internal (satisfaction from a job well-done, for instance). External sources tend to be transient, while internal sources tend to produce more consistent performance.
2. Lack of impulse control. Habitual impulsiveness gets in the way of optimal performance. Some people do not bring their full intellectual resources to bear on a problem but go with the first solution that pops into their heads.
3. Lack of perserverance and perseveration. Some people give up too easily, while others are unable to stop even when the quest will clearly be fruitless.
4. Using the wrong abilities. People may not be using the right abilities for the tasks in which they are engaged.
5. Inability to translate thought into action. Some people seem buried in thought. They have good ideas but rarely seem able to do anything about them.
6. Lack of product orientation. Some people seem more concerned about the process than the result of activity.
7. Inability to complete tasks. For some people nothing ever draws to a close. Perhaps it’s fear of what they would do next or fear of becoming hopelessly enmeshed in detail.
8. Failure to initiate. Still others are unwilling or unable to initiate a project. It may be indecision or fear of commitment.
9. Fear of failure. People may not reach peak performance because they avoid the really important challenges in life.
10. Procrastination. Some people are unable to act without pressure. They may also look for little things to do in order to put off the big ones.
11. Misattribution of blame. Some people always blame themselves for even the slightest mishap. Some always blame others.
12. Excessive self-pity. Some people spend more time feeling sorry for themselves than expending the effort necessary to overcome the problem.
13. Excessive dependency. Some people expect others to do for them what they ought to be doing themselves.
14. Wallowing in personal difficulties. Some people let their personal difficulties interfere grossly with their work. During the course of life, one can expect some real joys and some real sorrows. Maintaining a proper perspective is often difficult.
15. Distractibility and lack of concentration. Even some very intelligent people have very short attention spans.
16. Spreading oneself too think or too thick. Undertaking too many activities may result in none being completed on time. Undertaking too few can also result in missed opportunities and reduced levels of accomplishment.
17. Inability to delay gratification. Some people reward themselves and are rewarded by others for finishing small tasks, while avoiding bigger tasks that would earn them larger rewards.
18. Inability to see the forest for the trees. Some people become obsessed with details and are either unwilling or unable to see or deal with the larger picture in the projects they undertake.
19. Lack of balance between critical, analytical thinking and creative, synthetic thinking. It is important for people to learn what kind of thinking is expected of them in each situation.
20. Too little or too much self-confidence. Lack of self-confidence can gnaw away at a person’s ability to get things done and become a self-fulfilling prophecy. Conversely, individuals with too much self-confidence may not know when to admit they are wrong or in need of self-improvement.
Currently, im reading the book Expert Python, by Tarek Ziade. You can find a free excerpt from the book here. I will be providing a full book review later this week.