Robust Programming

Department of Computer Science
University of California at Davis
Davis, CA 95616-8562

Principles of Robust Programming

A robust program differs from a non-robust, or fragile, program by its adherence to the following four principles:

Paranoia. Don’t trust anything you don’t generate! Whenever someone uses your program or library routine, assume they will try to break it. When you call another function, check that it succeeds. Most importantly, assume that your own code will have problems, and program defensively, so those problems can be detected as quickly as possible.

Stupidity. Assume that the caller or user is an idiot, and cannot read any manual pages or documentation. Program so that the code you write will handle incorrect, bogus, and malformed inputs and parameters in a reasonable fashion, “reasonable” being defined by the environment. For example, if you print an error message, the message should be self-explanatory and not require the user to look up error codes in a manual. If you return an error code to the caller (for example, from a library routine) make the error codes unambiguous and detailed. Also, as soon as you detect the problem, take corrective action (or stop). This keeps the error from propagating.

Part of the problem is that in a week, you most likely will have forgotten the details of your program, and may call it incorrectly or give it bogus input. This programming style is also a form of defensive programming.

Dangerous Implements. A “dangerous implement” is anything that your routines expect to remain consistent across calls. For example, in the standard I/O library, the contents of the FILE structure for allocated files is expected to remain fixed across calls to the standard I/O library. That makes it a “dangerous implement.” Don’t let users gain access to these! They might accidentally (or deliberately) modify the data in that data structure, causing your library functions to fail – badly. Never return pointers or indices into arrays; always hide the true addresses (or indices) by using something called a “token.”

Hiding data structures also makes your program or library more modular. For example, the queue manager uses arrays to represent queues. This gives them a maximum size. You might decide that linked lists would be more suitable and want to rewrite the routines. If you have properly designed the interface and hidden as much information and data as possible, the calling program need not be changed; however, if you neglected this style of information hiding and information abstraction, programs that correctly function with the current representation might break if you changed that representation (because the caller assumed that the queue elements are in sequential integer locations, for example).

Can’t happen. As the old saw goes, “never say `never.'” Impossible cases are rarely that; most often, they are merely highly unlikely. Think about how those cases should be handled, and implement that type of handling. In the worst case, check for what you think is impossible,


Everything You Need to Know About Investing in Technology

The technology sector includes everything from major companies that everyone knows, to players both big and small that operate largely behind the scenes. The category is also home to emerging companies of all sizes, start-ups, and billion-dollar household brands.

In a broad sense, the category includes stocks involved with the research, creation, and distribution of technology-based goods or services. That can be everything from computers to software, televisions to websites. Hardware is the physical device — a computer, a television, a smartphone, etc. Software is the computer code and platforms that make those devices work. 

Technology stocks offer investors a lot of opportunities. In fact, the sector offered the highest returns of all ranked market sectors at 34.28% in 2017.

Those strong returns, however, do not mean the technology sector is without risks. Technology changes quickly, and one-time leaders can quickly fall behind, or even go out of business. In addition, promising emerging companies may make a huge splash, only to fade out quickly.

Technology is an exciting space that includes trends from artificial intelligence (AI), to smartphones, blockchain, self-driving technologies, the ongoing to trend to software-as-a-service (SaaS), the Internet of Things (IoT), streaming media services, and more. It’s an area full of opportunity, but also some risk.

A comouter with data coming off the screen.

Technology is much more than just computers. Image source: Getty Images.

Returns may vary

When you look at the past ten years of returns for the technology sector, the numbers vary greatly. The category topped all tracked sectors in 2009 and 2017 but underperformed the average of all sectors in four of the ten years.

Year Technology All sector
2008 -41.38% -35.16%
2009 50.94% 27.79%
2010 11.39% 16.11%
2011 2.67% 3.30%
2012 15.46% 14.78%
2013 25.97% 30.81%
2014 17.75% 13.41%
2015 5.63% -1.37%
2016 14.82% 14.31%
2017 34.28% 18.27%

Data source: SectorSpdr.com.

As you can see above, the technology sector can be boom or bust. The same is true of individual companies and market segments within the space. Sometimes a technology seems like it might be the next big thing — think 3D television just a few years ago — only for it to fail spectacularly in the marketplace.

Areas for investment

Technology is a wide-ranging term: It has expanded far beyond what would have once been considered the typical tech stocks, including computer companies like Apple (NASDAQ:AAPL), Microsoft (NASDAQ:MSFT), IBM (NYSE:IBM), and others. It’s not even fair to call any of these three brands computer companies anymore. They operate in a variety of other segments that are all part of the technology market, including but not limited to:

  • Artificial intelligence (AI): This is where computers perform tasks that might have traditionally require a human brain. AI also encompasses  deep learning (where data scientists build computer models inspired by the structure and function of the human brain that essentially reproduces our ability to learn), and machine learning (a type of AI where computers learn without being specifically programmed to). Amazon’s Alexa might be the most famous AI, though

Raven Tools – White Label SEO Reports and SEO Tools

Website Audits

Site Auditor quickly analyzes your website to find all of the desktop and mobile SEO issues that may be
keeping your site from ranking on search engines like Google, Bing, and Yahoo. The first step to ranking
is fixing what’s slowing you down. Find it. Fix it. Start Ranking.

Learn More About Website Auditor

After crawling all of your web pages a detailed report is generated with a site health score out of 100.
All on-page technical site problems and optimization opportunities are then generated by order of
severity. Don’t care to fix something? Hide the findings. Want an easy way to manage the fixes? The
website auditor generates your results as a checklist that can be marked off as you go.

Not an SEO guru? Don’t worry, if you don’t know how to fix the issues we give you the ability to share
your results. Many businesses use this to share their audits with their webmasters, SEO, or just with
facebook and twitter. You can even automate the reports.

Backlink Tools

Backlink Explorer allows you to enter any domain or URL to get an advanced look at its backlinks.
your competitors to understand why they’re ranked, identify potentially toxic links, and follow up on
discoveries with the Raven’s Link Manager.

Raven extracts data from our third party partner, Majestic, to uncover up to 50,000 backlinks for any
Not only can you identify the link but you can categorize by:

– Authority (trust flow)
– Anchor text
– Link Type

After you’ve identified a backlink, with a click of the mouse you can add a backlink to the Raven’s
building Management tool or you can inspect the quality of the link with Raven’s customizable Quality

Rank Tracking

Raven Tools Rank Tracker provides the flexibility of daily, weekly, or monthly rank tracking on each
individual SERP, whether its Google, Bing, Yahoo, Yandex, or Baidu.

Learn More About Rank Tracker

Track based on device type, zip code, by language, or upload keyword lists, copy and paste hundreds of
keywords in rows into the tool, or just type in a single keyword to instantly begin tracking keyword
rankings. You can even access historical ranking data.

Visualize your ranking within your detailed marketing reports and easily move from keyword tracking to
keyword research and management with a click of a button. Surface those head-to-head comparison metrics
with your competitors as you compete for keyword rankings.

Marketing Reports

Raven’s drag-and-drop reporting wizard is crazy simple. In minutes, you can build reports with any
combination of 30+ data modules and summary pages where you can share notes or observations. Every single
tool is connected and you can customize how you surface a data point in your reports.

Learn More About Marketing Reports

Your report can run on a schedule or on demand. You decide what’s best.
Customers tell us they routinely save 5 to 10 hours every month with Raven reports. That pays for the
account alone.

Every Raven account


GadgetDrop | Cell Phone Repair | iPhone, Tablet & Laptop Repair | Micro Soldering | Unlock Any Phone | Data Recovery


Most screen repairs done same day!


iphone & ipad repairs

get it fixed fast

iPhone & Ipad Repair

iPhone repair at unbelievable prices! Cracked screen on your iPhone 8? iPhone X? Does not matter which version iPhone or what is broken, we fix every issue with all iPhones and iPads. Dare to compare our super fast quality service on all Apple devices!

iphones from $45

ipads from $79

android phones & tablets

don’t buy new, get it fixed

Android Samsung Phone Repair

Samsung mobile phone repair and all mobile phone repair. The makers of your device need you to buy new to keep their wallet fat. Bring your device to us and keep more money in your wallet. We can fix any issue, we carry all the parts – we have the experience. Save money. Call now!

as low as $59

MAC & PC Laptops

data recovery & system restore

Apple & PC Laptop Repair

We fix hardware on MAC laptops, Mac desktops and any Apple computer. Any laptop, any brand… so bring your Dell computer with the cracked screen or charging port that stopped working. HP, Acer, Asus, MSI and others – complete hardware repair & replacement. Data recovery from any device.

starting from $79

micro soldering

#1 in the Tri-County Area

Micro Soldering

Micro soldering requires experience and precision. This is the highest level in electronic repair. Most techs can’t do what we do. Were you told your device can’t be fixed? Bring it to us, we can fix it. State-of-the-art equipment to handle any electronic repair. We are experts.

as low as $59

why choose us?

master technicians


Over 2 Decades of experience. In house trained technicians. Support all types of Manufactured devices.

same day service


No need for appointments! GadgetDrop provides a fast repair solution for a walk in customers most jobs are completed
in minutes or the same business day.

low price guarantee


Price match or beat any competitors advertised prices and quality! The best prices on replacement devices guaranteed!

common mobile phone, tablet & computer repairs

  • broken glass
  • Broken LCD screen
  • Draining battery fast
  • Battery replacement
  • Camera not working
  • Remove password
  • No Wi-Fi signal
  • No loud speaker audio
  • No ringer or alerts
  • Liquid damage
  • no power
  • Button or key pad
  • Shortage
  • Touch freeze
  • Not charging
  • Data recovery
  • Reinstall iOS
  • Broken charger port
  • Dropping calls
  • Losing signal
  • Not reading Sim Card
  • Micro Soldering
  • Backlight logic
  • Chiplevel repair
  • FPC Connector
  • Reframe
  • Bootloop “Softbrick”
  • Remove pattern lock
  • Not calling out
  • Rear cover

(248) 968-0000

have your device repaired today
we will beat any competitor’s advertised price guaranteed!

repairing electronic devices since 1992

iPhones & iPads

  • iPhone 5/SE, 6, 7, 8, X
  • component level repair
  • micro soldering
  • We fix any iPad or iPod
  • we have most parts in stock

Android Devices

  • component level repair
  • micro soldering
  • we can fix any phone
  • don’t buy new, get it fixed

MAC & PC Laptops

  • component level repair
  • micro soldering
  • data recovery on any device
  • wholesale accounts welcome

GadgetDrop Master technicians have over 25 years of combined industry knowledge and


Programming Competition,Programming Contest,Online Computer Programming

CodeChef – A Platform for Aspiring Programmers

CodeChef was created as a platform to help programmers make it big in the world of algorithms, computer programming, and programming contests. At CodeChef we work hard to revive the geek in you by hosting a programming contest at the start of the month and two smaller programming challenges at the middle and end of the month. We also aim to have training sessions and discussions related to algorithms, binary search, technicalities like array size and the likes. Apart from providing a platform for programming competitions, CodeChef also has various algorithm tutorials and forum discussions to help those who are new to the world of computer programming.

Practice Section – A Place to hone your ‘Computer Programming Skills’

Try your hand at one of our many practice problems and submit your solution in the language of your choice. Our programming contest judge accepts solutions in over 55+ programming languages. Preparing for coding contests were never this much fun! Receive points, and move up through the CodeChef ranks. Use our practice section to better prepare yourself for the multiple programming challenges that take place through-out the month on CodeChef.

Compete – Monthly Programming Contests, Cook-off and Lunchtime

Here is where you can show off your computer programming skills. Take part in our 10 days long monthly coding contest and the shorter format Cook-off and Lunchtime coding contests. Put yourself up for recognition and win great prizes. Our programming contests have prizes worth up to INR 20,000 (for Indian Community), $700 (for Global Community) and lots more CodeChef goodies up for grabs.

Source Article


N3FJP’s Amateur Radio Software

Amateur Contact Log

Field Day Contest Log

Welcome! Thanks for visiting our amateur radio software website. I became an amateur radio operator in 1976, at the age of 14 and have been enjoying many facets of amateur radio ever since. I enjoy working contests, making contacts via CW and phone, experimenting with antennas and general tuning around the bands. My lovely XYL, Kimberly, KA3SEQ, is my partner in all the contesting and software endeavors. We also share the hobby of amateur radio with our two sons, Christopher, KB3KCN, and Bradley, KB3MNE.

As an extension of my Amateur Radio hobby, I became interested in computer programming. I wanted to create easy to use software for my station that performed a variety of functions for contesting and general logging. I began in 1997 with a program to log contacts during November Sweepstakes and shared it with local hams. The program was so well liked, I started to receive requests for additional software.

From that first program, our software library has grown to more than 100 applications! Amateur Contact Log is an easy to use general logging program that has many great features including tracking of worked all states, counties and countries. The rest of our programs are easy to use “contest specific” applications. You can see what we’ve been up to lately on our recent news and announcements page.

We are thrilled with the positive response we have received and we can’t thank you all enough for your ideas, kind words and encouragement.

All of our software is free to try and fully functional! Please click the links above to browse through our software library, try our programs, put them through their paces and see what you think. We hope that you enjoy these programs, and if you find them useful, please tell a friend!

1 Peter 3 vs 15: Always be prepared to give an answer to everyone who asks you to give the reason for the hope that you have. But do this with gentleness and respect…

Source Article


Pirates of the Caribbean | Official Website



Source Article


Microsoft Excel for SEOs | distilled

Table of Contents

Excel for SEO is a guide we wrote up to help SEO professionals get meaningful information from mountains of data.

This guide was originally written to be read from start to finish, as some examples are worked on through different lessons. That said, you should be able to jump ahead if you feel like you’ve got the basics down.

Please report any errors or confusing stuff to one of the Twitter accounts on the right and we’ll be sure to fix it right up.

Feel free to download the XLS with the data from the examples.

I am an Excel Ninja!
Completed the training?
Embed this fun badge
on your site!



SEOs have been getting into our industry from all sorts of past careers — web designers, developers, marketers, business people and those that “just fell into SEO”. Some of these past positions may have required data analysis with Microsoft Excel, but a good many of them did not. Excel was not a big part of my past jobs, and I would guess that many SEOs’ past careers did not require anything more than adequacy in the program.

Over the last few years our field has become even more data-driven than in the past thanks to tools like Open Site Explorer, improved Google Webmaster Tools and Analytics, Majestic SEO, Raven, and many others. Additionally, our clients have become wiser and more SEO capable, having been burned in the past by snake oil SEOs. They want reliable SEO advice with a strong verifiable foundation, and who could blame them?

Many SEOs are now finding themselves faced with the task of doing fairly complex data analysis to improve their search strategies, and Excel adequacy is not quite enough. This was the position I found myself in not too long ago, and while I’m far from the deadliest ninja in the dojo today, I’ve picked up a thing or two from the brilliant minds around me.

With this document I intend to share some of the most valuable a spects of Microsoft Excel for the SEO. It is far from an exhaustive look at everything that can be done with Excel, but hopefully a strong foundation for the SEO’s toolkit. I’ll be including real world SEO tasks, ranging from the relatively simple to rather complex, so I hope there’s something for everyone.

So if pivot tables, IF statements, absolute references and nested functions make you scratch your head, read on, Aspiring Ninja!

Oh! Before we begin, we must give credit where credit is due. This guide could not have been prepared without the help of some of Richard Baxter‘s awesome blog posts and the official Microsoft Excel Help site.

Lesson 1: Basic Tasks

In this lesson we’ll cover some of the simpler functions available in Excel, and how they’re used in the SEO’s day-to-day tasks. The functions we’ll cover:

  • Text to Columns


Microsoft Excel


the Open Broadband Speed Test

We’re sorry, the tests appear to have failed.
This is most likely due to restrictions on your network,
such as an office or personal firewall,
or browser plugins that block access to the tests.
Please check to see if their are any applications or firewalls that could
be limiting your ability to conduct measurements, and that your
software is up-to-date.


How does the test work?

The Internet Health Test runs a few short speed tests to several measurement servers on different networks to compare how your broadband connection performance varies to different parts of the Internet. These tests shouldn’t take too long and do not collect personal information from your browser.

Want to Learn More or Report Issues?

Please reach out to the Internet Health Test: help@internethealthtest.org

Download speed is the maximum rate that your computer could receive data from the server. Each row can be expanded to display more metrics from the test.


Closest Server:

Source Article