22 posts tagged “software”
It isn't enough to pass by a statement without making it bold so I'll just state it as plain and straight as I can.
Software Development, better so product development, does not require a breath-first approach. Software is about building structure out of a unstructured idea. Design is about attempting to capture that for what it's worth to a humane understanding. Management is the process of ensuring that all this knowledge is kept synchronized and a flow is followed to the end-goal.
Remember a long time ago we built a few neat audio tools together? Then if you remember even further back I talked a bit about my involvement with some helpdesk systems. Well, we're going to revisit pieces of those in order to build something spectacular. We are going to build our own home-grown conference software. Here's a few ideas I had in mind for this:
Chatters
Chatters are little dots that radiate sound. Whenever someone logs-in or is available to talk to, or is in the queue to be talked to, then the little dot pops up on your desktop. If you click on the dot you can get more information about the person and options to talk with them.
Group Chatter
When you want to hold a conference you simply have to group a few people up together into a roughly drawn circle. A brush on the desktop to draw that circlish figure and dragging your buddies in there. Of course, this would have to notify the intending parties that a conference is being held, to which they may or may not join.
Let's start with those first and work our way up.
I know I can come up with something and it shall be launched! In the meantime, check out this new design I made. At some point I should actually put some content into the design, but I enjoy this. This one is called Plenatude.
It's not nearly as complete as the others, but I like the colored rays. I think I'll build on this one and get back to you. Here's another view without the navigation links, you can see the rays better.

I also made a "People's Software Manifesto". This should count as content.
Well, I launched Curbside Design, made a milllion bucks and now I'm on my next adventure (what? it can happen). Here's another sweet creative consulting company I'm working on. This one is called Cre8tive Software. I thought to put in some neat fractal effects into the background.
I even made a business card, check it out.
So far so good, if I can just work up to creating something that brings in the doeh - then I'll be set :D
I decided to write a quick prose on interaction design and software. It's simple, but I think it gets the point across.
Since the dawn of time we have learned to progress by
connecting and building off of the world around us. We
have learned how to communicate, explore and create
through example, experimentation and evolution. Yet,
in a world becoming more and more dependent on IT,
we are only beginning to understand the many ways to
interact with the content around us.This is our journey. Our passion is software.
- Thomas Holloway
Here are some of the new features and improvements you can expect in SP1:
• Generate bitmap fonts for your applications from the provided fonts
• Install separate developer and release versions of device firmware
• Protect devices from installation of unsigned code to their flash memory
• A new tool for creating, signing, and installing device firmware images
• Improved feedback during deployment from Visual Studio to a device
• Revised and upgraded documentation
• Fixes for several customer-reported issues
The SP1 download does not include new device firmware. If you have a development board from one of our hardware partners, check with the vendor to see when new firmware for your device will be available. New device firmware is only necessary if you wish to use flash protection.
Device Profile for Web Services
We're adding Device Profile for Web Services (DPWS) client and server support to the .NET Micro Framework. DPWS, also sometimes called Web Services on Devices (WSD), is a Web Services profile that enables a USB-like level of plug-and-play for networked devices. A PC or other device can detect DPWS-enabled devices on a network, then discover and invoke the functionality each device provides. A release date has not yet been set for this package (it is not part of Service Pack 1).
Looking Further Ahead
We're already planning the direction the .NET Micro Framework will take over the next year. Our first project is an integrated TCP/IP implementation that doesn't rely on an underlying network stack. For developers, this means more small network-enabled devices to develop on. Look for more information about these and other improvements as they take shape over the coming months.
Alright, this time I'm going to get right to the gut of quality assurance and talk about the ideal kind of testing environment when it comes to software, big or small.
Firstly, what kind of project are you planning on building? Is it a website? A desktop application? A mobile phone application? Realistically, it can be any project so long as you follow these 12 guidelines.
- Do you have source control?
It's always good to have source control and especially for the type of test driven environment you're looking for it will be even better for running all of those tests. - Can you build your solution in 1 Step
Most of us are using Visual Studio to build our projects but nevertheless you should be able to build your solution in 1 step whether it be building it for debug or compile and/or including deployment. It's a pretty common scenario where you want to deploy your solution immediately when you're done. - Do you perform daily builds?
If you're working on a project that goes day in and day out of work you should ensure that you at least build once a day or at night to follow up tests and issues in the program. - Do you have a bug database?
Bug databases are used for instant tracking of all of your bugs, whether automatically reported by the system or typed in by a user or developer on the team. It's very good to have one of these if you're working in a larger team. But even in a small team (like yourself) it can be pretty handy to organize everything into a simple database of bugs. Makes it easier to clean things off. - Do you fix bugs before writing new code?
This one is tough if you're not working directly off test driven code. What test-driven code means is that for every feature or series of implementations you have written tests to ensure that all logic and implementations are valid or work according to a standard. Think of test-driven development as writing the model that you want your project to become and the code that you are writing to be tested against are the drafts to the sculpture. - Do you have an up-to-date schedule?
What are you working on? What needs to be done? Who's working on what? Try not to think of schedules as some mundane constraint who's only use to keep the manager out of your hair. Schedules are incredibly valuable tools for time management. They teach you to manage your time wisely and keep you from working day in and day out on a silly problem that may mean nothing in the long run. In our industry we are too often thinking about the how and the what-if scenarios of software development but we rarely take a step back and ask whether or not we should do something rather than if it's possible. - Do you a specification?
If you're working on something that other people are going to be either working on or integrating with, please please please for the sake of all time and humanity, write healthy comments and anything else that will help people understand how to work with said system. Tutorials, samples, anything that relates to your system is really helpful for others to use their time just as wisely and timely. - Does your team have quiet working environments?
I know, you're thinking, "Wait a minute. What does quiet working environments have to do with software quality assurance." Well believe it or not, but a quiet working environment is basically a large white board to the mind of a developer and a tester. It ensures that not only can someone hear their own thoughts, but as a team it makes it easier to discuss and collaborate without disturbance. - Do you own or use the best tools money can buy?
Better tools, newer technologies anything that can aid you and speed up your time in development or your goals is far more useful than ever, especially to your users who are so eager to see what you've come up with. - Do you have a group of people or person who's sole purpose is to write tests?
This is more so for larger groups, in small groups you will be the tester and as a developer it's best practice to get in the habit of testing your own code before hand. - When you have new people on the project, do you have them write code before joining the team?
Usually it's a great idea to have the person you're interviewing actually write code related to what you're working with or what you plan to have them working with. Sometimes it doesn't really have to be a test of knowledge but to allow the person to get a feel for the code that he/she will be working with and it allows you to adapt to whatever practices or standards he/she may already go by. - Do you perform hallway usability testing?
Hallway usability tests are done by simply taking your laptop out into the hallway and showing what you've made. It's a great way to get suggestions and get other people excited about your creations. It's a great motivator if the people you test give back constructive criticism. And if you've followed the above guidelines this step should be no problem because you'll never run into a situation of a useless feature or a bug. You can explain it with confidence and passion!
What do I use for my test-driven quality assurance setup?
- Subversion Web: I try to always have a subversion setup that I can access via the web. These are useful for the fact that most of them have wikis for documentation and logs that come from subversion. It makes it especially easier for deployment since I can just create a release from the website.
I've been using: unfuddle lately. I think it's great!

|
|
Google Corporate, their philosophy and ten things that they have found to be true.
Never Settle for the best
"The perfect search engine," says Google co-founder Larry Page, "would understand exactly what you mean and give back exactly what you want." Given the state of search technology today, that's a far-reaching vision requiring research, development and innovation to realize. Google is committed to blazing that trail. Though acknowledged as the world's leading search technology company, Google's goal is to provide a much higher level of service to all those who seek information, whether they're at a desk in Boston, driving through Bonn, or strolling in Bangkok.
To that end, Google has persistently pursued innovation and pushed the limits of existing technology to provide a fast, accurate and easy-to-use search service that can be accessed from anywhere. To fully understand Google, it's helpful to understand all the ways in which the company has helped to redefine how individuals, businesses and technologist view the Internet.
1. Focus on the user and all else will follow.
From its inception, Google has focused on providing the best user experience possible. While many companies claim to put their customers first, few are able to resist the temptation to make small sacrifices to increase shareholder value. Google has steadfastly refused to make any change that does not offer a benefit to the users who come to the site:
- The interface is clear and simple.
- Pages load instantly.
- Placement in search results is never sold to anyone.
- Advertising on the site must offer relevant content and not be a distraction.
By always placing the interests of the user first, Google has built the most loyal audience on the web. And that growth has come not through TV ad campaigns, but through word of mouth from one satisfied user to another.
2. It's best to do one thing really, really well.
Google does search. With one of the world's largest research groups focused exclusively on solving search problems, we know what we do well, and how we could do it better. Through continued iteration on difficult problems, we've been able to solve complex issues and provide continuous improvements to a service already considered the best on the web at making finding information a fast and seamless experience for millions of users. Our dedication to improving search has also allowed us to apply what we've learned to new products, including Gmail, Google Desktop, and Google Maps. As we continue to build new products* while making search better, our hope is to bring the power of search to previously unexplored areas, and to help users access and use even more of the ever-expanding information in their lives.
3. Fast is better than slow.
Google believes in instant gratification. You want answers and you want them right now. Who are we to argue? Google may be the only company in the world whose stated goal is to have users leave its website as quickly as possible. By fanatically obsessing on shaving every excess bit and byte from our pages and increasing the efficiency of our serving environment, Google has broken its own speed records time and again. Others assumed large servers were the fastest way to handle massive amounts of data. Google found networked PCs to be faster. Where others accepted apparent speed limits imposed by search algorithms, Google wrote new algorithms that proved there were no limits. And Google continues to work on making it all go even faster.
4. Democracy on the web works.
Google works because it relies on the millions of individuals posting links on websites to help determine which other sites offer content of value. Google assesses the importance of every web page using a variety of techniques, including its patented PageRank™ algorithm which analyzes which sites have been "voted" the best sources of information by other pages across the web. This technique actually improves as the web gets bigger, as each new site is another point of information and another vote to be counted.
5. You don't need to be at your desk to need an answer.
The world is increasingly mobile and unwilling to be constrained to a fixed location. Whether it's through their PDAs, their wireless phones or even their automobiles, people want information to come to them. Google's innovations in this area include Google Number Search, which reduces the number of keypad strokes required to find data from a web-enabled cellular phone and an on-the-fly translation system that converts pages written in HTML to a format that can be read by phone browsers. This system opens up billions of pages for viewing from devices that would otherwise not be able to display them, including Palm PDAs and Japanese i-mode, J-Sky, and EZWeb devices. Wherever search is likely to help users obtain the information they seek, Google is pioneering new technologies and offering new solutions.
6. You can make money without doing evil.
Google is a business. The revenue the company generates is derived from offering its search technology to companies and from the sale of advertising displayed on Google and on other sites across the web. However, you may have never seen an ad on Google. That's because Google does not allow ads to be displayed on our results pages unless they're relevant to the results page on which they're shown. So, only certain searches produce sponsored links above or to the right of the results. Google firmly believes that ads can provide useful information if, and only if, they are relevant to what you wish to find.
Google has also proven that advertising can be effective without being flashy. Google does not accept pop-up advertising, which interferes with your ability to see the content you've requested. We've found that text ads (AdWords) that are relevant to the person reading them draw much higher clickthrough rates than ads appearing randomly. Google's maximization group works with advertisers to improve clickthrough rates over the life of a campaign, because high clickthrough rates are an indication that ads are relevant to a user's interests. Any advertiser, no matter how small or how large, can take advantage of this highly targeted medium, whether through our self-service advertising program that puts ads online within minutes, or with the assistance of a Google advertising representative.
Advertising on Google is always clearly identified as a "Sponsored Link." It is a core value for Google that there be no compromising of the integrity of our results. We never manipulate rankings to put our partners higher in our search results. No one can buy better PageRank. Our users trust Google's objectivity and no short-term gain could ever justify breaching that trust.
Thousands of advertisers use our Google AdWords program to promote their products; we believe AdWords is the largest program of its kind. In addition, thousands of web site managers take advantage of our Google AdSense program to deliver ads relevant to the content on their sites, improving their ability to generate revenue and enhancing the experience for their users.
7. There's always more information out there.
Once Google had indexed more of the HTML pages on the Internet than any other search service, our engineers turned their attention to information that was not as readily accessible. Sometimes it was just a matter of integrating new databases, such as adding a phone number and address lookup and a business directory. Other efforts required a bit more creativity, like adding the ability to search billions of images and a way to view pages that were originally created as PDF files. The popularity of PDF results led us to expand the list of file types searched to include documents produced in a dozen formats such as Microsoft Word, Excel and PowerPoint. For wireless users, Google developed a unique way to translate HTML formatted files into a format that could be read by mobile devices. The list is not likely to end there as Google's researchers continue looking into ways to bring all the world's information to users seeking answers.
8. The need for information crosses all borders.
Though Google is headquartered in California, our mission is to facilitate access to information for the entire world, so we have offices around the globe. To that end we maintain dozens of Internet domains and serve more than half of our results to users living outside the United States. Google search results can be restricted to pages written in more than 35 languages according to a user's preference. We also offer a translation feature to make content available to users regardless of their native tongue and for those who prefer not to search in English, Google's interface can be customized into more than 100 languages. To accelerate the addition of new languages, Google offers volunteers the opportunity to help in the translation through an automated tool available on the Google.com website. This process has greatly improved both the variety and quality of service we're able to offer users in even the most far flung corners of the globe.
9. You can be serious without a suit.
Google's founders have often stated that the company is not serious about anything but search. They built a company around the idea that work should be challenging and the challenge should be fun. To that end, Google's culture is unlike any in corporate America, and it's not because of the ubiquitous lava lamps and large rubber balls, or the fact that the company's chef used to cook for the Grateful Dead. In the same way Google puts users first when it comes to our online service, Google Inc. puts employees first when it comes to daily life in our Googleplex headquarters. There is an emphasis on team achievements and pride in individual accomplishments that contribute to the company's overall success. Ideas are traded, tested and put into practice with an alacrity that can be dizzying. Meetings that would take hours elsewhere are frequently little more than a conversation in line for lunch and few walls separate those who write the code from those who write the checks. This highly communicative environment fosters a productivity and camaraderie fueled by the realization that millions of people rely on Google results. Give the proper tools to a group of people who like to make a difference, and they will.
10. Great just isn't good enough.
Always deliver more than expected. Google does not accept being the best as an endpoint, but a starting point. Through innovation and iteration, Google takes something that works well and improves upon it in unexpected ways. Search works well for properly spelled words, but what about typos? One engineer saw a need and created a spell checker that seems to read a user's mind. It takes too long to search from a WAP phone? Our wireless group developed Google Number Search to reduce entries from three keystrokes per letter to one. With a user base in the millions, Google is able to identify points of friction quickly and smooth them out. Google's point of distinction however, is anticipating needs not yet articulated by our global audience, then meeting them with products and services that set new standards. This constant dissatisfaction with the way things are is ultimately the driving force behind the world's best search engine.
Once upon a time there was a man, this man was no ordinary man, he was a thinker; a social thinker. Free and abroad there are no limits to where his mind can go. Each project he came upon was a work of art; focusing in the beauty of social networking and constructing the perfect anatomy to which the interaction and workings should comprise of it. However, one problem arises in his approach, he is no manager; his timing is usually off; and the communication with others lacks with his ability to define a fine path for the goals he sets out. Because of this anomaly in design, each project turns into a recursive space of chaos; dwindling down into the black hole of development.
Each time we start developing our own projects there are some that simply dwell on the idea that others will use it, that "it" will become the greatest thing since sliced bread; all will use it and all will adore. Then you begin to think of what it will do: features and ideas simply thrash their way into that roller coasting storm within your brain. Alright then, where do I start. hmm... let's write something down, like a scope outline or a set of goals. So all those ideas you suddenly thought of turn its way to pen and paper (or notepad if you prefer).
Congratulations you have successfully broken rule number 1 in your intent to finish a great project.
Rule #1:
Firstly, a project, like any work, is a series of steps starting by it's growth pattern.
Projects grow into beauty, much like artwork. Where you start is up to you, it's simply a matter of starting it that most people tend to forget.
Alright, so you decide let's take a look at those ideas and put together something of a prototype. Hmm, which feature do I start working on? Well, let's see what's available on the internet, I'm sure someone has something that I can take a look at. So you go off, look at a few.. well hundred samples and you find out that there's definitely something missing in all of these samples. An underlying concept or resource that suddenly because apparent and you begin creating to fix this problem.
Rule #2:
Research and development is a perfect way to figure out a role in either user design or project dynamics. The problem is that it is too often done well over the time that it's needed for. In addition, while you tune yourself in on each project there is a tendency to fall into a thought-process that causes you to stray from the original goals. This, recursive syndrome, is often found in the minds of programmers and developers.
"Wanting to build a tool to help you write tool rather than just building the original program."It's really a habit of perfectionists; because as you build each component you want to make it better, more secure and more extensible, more aesthetically pleasing.
Spending 12 minutes on a button because you don't like it's color or agonizing over a single-pixel error is apart of that perfectionist habit. Break it before it takes a hold of your original intentions.
Introducing the next feature, or next set of ideas it is easy for one to break rule #2 over and over again; and before you know it it's 3 weeks later and not a whole lot is done. Getting passed those 2 rules is easy if you've already set a standard for the project and what to complete.
Standards and requirements don't have to extensive, they're there for guidelines; to keep you in check so you don't endlessly break rule #1 or #2. And generally they're supposed to be small, incremental in design, that's usually why it's supposed to be written in almost the 1st day.
Nevertheless, there's a place where you may not even need several documents of requirements, loads of design papers and prototypes. This place is attributed to the sole creator, designer, architect... etc. Quoting Ze Frank, "every time I have an idea, I try to create it as fast and as soon as possible. otherwise I'll get addicted to brain crack." When it comes right down to it, let a project grow into it's amazing beauty, create as soon and as fast as possible; if nothing comes to mind for it's next selection of growth, then go back and strengthen those genes of the project. You'll find out that the creativity will come a lot quicker when you're constantly getting to show what you've already made.
- This post was really directed at myself since last quarter I had just been putting out brainstorms and visions, but I hope it helps anyone else who's gotten stuck somewhere.
Thanks to a leak from the WWDC, several details of the capabilities and limitations of the browser are now known, and major Ajax vendors are scrambling to make sure their toolkits will support it.
The resolution is 320×396 for the web viewing area in portrait mode. The dot pitch will be smaller than you’re used to, however, so you should avoid hard-coding font sizes.
Unfortunately, neither Java applets nor Flash will be supported in this browser, at least in the initial version. Video and audio is supported through Quicktime (H.264 baseline profile level 3.0). Interestingly, YouTube videos will work on the iPhone, but only because YouTube will recode their videos into H.264 format for the iPhone and Apple TV (instead of the On2 VP6 video format that they use now inside the Flash player). Since H.264 is one of the best high-tech formats available today, we might see better quality video at the same bandwidth. Links directly to movies will reportedly switch the iPhone into full-screen, landscape video playback.
The browser has some limitations most developers are not likely to run into, such as a 10MB max html size for the web page, 5 seconds of run time and 10MB heap allocation limits for Javascript, and a maximum of 8 documents viewed at once (in tabs).
The iPhone will have built-in support for viewing PDF, MS Word (.doc), and MS Excel (.xls) format files. PDF will likely work the best, since that’s a native format for MacOSX.
Telephone-specific urls will, for example, allow the user to click on a link and make a phone call. These include “sms:”, “tel:”, and “mailto:”. In some cases it appears special links are not really necessary. One source says that if a phone number appears anywhere on a web page Safari will automatically recognize it and make it clickable, just like browsers on some other phones.
Here are some more recommendations from Apple to make your content look its best on the iPhone:
- Separate HTML and CSS (that’s good advice all the time)
- Use well structured and valid HTML (ditto)
- Size images appropriately (don’t rely on browser scaling)
- Tile small images in backgrounds (don’t use large background images)
- iPhone supports both EDGE and Wi-Fi. EDGE pipe is smaller than Wi-Fi pipe, so consider bandwidth when developing.
- XHTML mobile documents supported.
- Stylesheet device width: 480px
- Apply different CSS for the iPhone. For example displaying a one column page for iPhone vs. a 3 column page on a desktop.
- There are no scroll bars or resize knobs. The iPhone will automatically expand the content.
- Avoid framesets. Scrollable frames are automatically expanded to fit the content
Bottom line:
Like the Opera-based internet browser on the Nintendo Wii, most developers will look at the iPhone as yet another high-volume consumer-oriented web platform for their pages and applications. As a first pass, it would be a good idea to ensure your apps don’t look like crap on the device. Then if you notice a lot of iPhone traffic or want to target it specifically for some other reason, you can use CSS and user agents to customize your presentation to your heart’s content.
Related info:
