A Guide To A Programmer’s New Year’s Resolution: Coding Faster With Fewer Bugs

Happy New Year!

A Guide To A Programmer’s New Year’s Resolution:

Coding Faster With Fewer Bugs

Keep practicing. Always practice, never test – if you judge yourself on how long it takes you to write or debug something, or how many bugs you create the first time around, you’ll only put unnecessary stress on yourself and make it harder to learn.

 

This advice unfortunately has to be fairly general because it applies to every software engineer in a different way. It’s important to give yourself the time and opportunity to learn, though what you learn and how you learn it could be very different from what and how your friends and colleagues would learn.

 

Some thoughts and attitudes I’ve developed in my jobs and personal projects (you may disagree if your styles of engineering or learning are different):

 

Choose the right tools for the job based on the goals of the project, not personal experience. For example, Python makes it easy to write software quickly, but hard to optimize for performance or memory usage. C makes it very obvious what’s going on at the machine level, at the cost of significantly more wordy code that’s harder to write and understand later on. If you know Python and not C, but you need your code to be very fast and memory-efficient, then it’s probably worth the extra time to learn C than to try to deal with performance and memory issues in Python. There are similar considerations when choosing libraries/modules to use in your project, design patterns to use within your project, etc. Learning a variety of languages and libraries will help you to think in a variety of different ways when writing code, which will help you anticipate potential issues and thereby save time.

 

Spend some time planning your projects, but not too much. When starting a project, I would first get a general idea of what components will be necessary for the system to work, but wouldn’t spend too much time defining the interfaces between them or breaking each one down into subcomponents before diving into code. Sometimes it may even be more efficient to write some component the “wrong” way the first time and rewrite it if necessary when the other components are more mature. Excessive time spent planning may be wasted anyway since projects rarely go exactly as initially planned. It’s important to recognize how much time spent on details in a plan is “enough” (i.e. when you should stop planning and start coding), which unfortunately seems to be something that only comes with experience.

 

Don’t be afraid of debuggers. gdb may seem intimidating at first, but it’s a wonderful time-saving tool and it’s fairly easy to learn the basics. You can debug many different types of issues using only the break, run, next, and print commands.

 

When implementing a specific part of the project, don’t only think about the ways it’s supposed to work, but also what it does when something unexpected happens. Does the function fail if one of the input parameters is negative, or null? What if some of the data files the program needs don’t exist, or are the wrong type or size? What happens if another thread is updating this linked list at the same time this thread is traversing it? The knowledge to check for these kinds of things comes with experience – after debugging a specific issue, you’ll know to check for that kind of issue (and similar issues) in the future.

 

So keep practicing. Write more software, use more tools, make more bugs, investigate them, fix them and learn from them.

 

Article courtesy of Martin Michelsen, infrastructure engineer, on Quora

6 Hot and Trendy Web Designs That Are Here To Stay

 

6 Hot and Trendy Web Designs That Are Here To Stay

Web, Internet, Symbol, Web Design, Logo

 

The success of a web design is dependent on the layout of the website, its colors, fonts and images. The design of the site should be attractive, and the visitors should be compelled to stay on the web for longer periods of time. The trends in web design are changing quickly. The success of a website depends on keeping up with new trends.

Here is a look at the most popular trends of web design in 2016:

  1. Pattern of Imagery Web Design:

Photos play a significant role in digital communication. Images are used for engaging more users and for successfully illustrating messages. The users pay more attention to photos that are real. A web design should avoid using cheesy pictures because people tend to ignore them. Adding high-quality images of your products can produce a feeling of trust and this increases the desire of such individuals to explore the website.

Several websites provide plenty of photos free of cost. Some of these websites are Raumrot, Picjumbo, Unsplash, a life of pix, etc. You can also go to the Premium stock photo sites like Refe, Offset, Stocksy, etc.

  1. Trend of Video Background Website:

Websites are mostly tools for storytelling. It is an effective way of transferring ideas to customers. 3-D graphics have increased the attractiveness of video background web design. The HD quality of videos has also made it more appealing. These videos can provide real life experiences to the visitors. Users like and prefer content in a visual format.

One of the disadvantages of this trend is that it has extended loading time. This problem is solved by several websites that provide excellently designed loading screens. But people still have to wait for the full experience as the video uploads.

  1. Trend of Personal Branding:

Whether you like to focus on it or not, the existence of personal branding cannot be denied. The main aim of the branding is to make sure that the mission and vision are in alignment. It will help in you being perceived as you want to be. It will prevent people from having diverse speculations and opinions about the website. While designing the personal branding, the focus should be on a mission statement. This can be conveyed by using personal pictures, interviews, achievements, thus build more credibility.

  1. Mobile First Websites:

To succeed in the market, it is imperative that the changing statics and patterns of web usage are not ignored. The website visitors are using mobile phones and the website which do not have mobile optimized versions cause a lot of trouble. Users tend to abandon the sites which fail to open on their cell phones. The new web designs trend demand a mobile first approach. The website should be brief, focused and its design should be able to take advantage of features such as mobility, touchscreen, GPS, etc. In the year 2016, there is a lot of development and growth expected in mobile web design.

  1. Trend of Modular Design:

This is also known as the grid based design. It is a new approach to web designing but it is getting more popular.  It is reusable and is pretty responsive, and user-friendly. The layout is neat and clean. It looks good on a screen of any size. It divides the system into small parts called modules. It can be created independently and used in different platforms. It can be characterized by using different modules.

  1. Trend of One-Page Web Design:

Scrolling is a better option as compared to the clicking because of the changing web browsing patterns. Mobile usage highly influences the website layout. They have small screens, so natural touch scrolling movement is preferred. People now prefer one-page designs. It can present a lot of information in a clean and nicely designed flow.

 

Article courtesy of Charles Crawford.

Startup wants to open selfie-themed cafe

Startup Wants To Open Selfie-themed Cafe

 

Technology has, at its heart, the fulfillment of human needs.

There’s no point creating an elephant-delivery app if there really isn’t a demand.

Hosannas, then, to the founders of a new cafe concept that is sure to sweep the world. It’s called Selffee.

Now why would a cafe have that name? You’re there already, aren’t you? This is a place where you have your own picture printed onto the food or drink you consume.

adult-1869430_960_720

Selffee’s menu will include cold-brew iced coffee, milkshakes, iced green tea, cookies, cupcakes and marshmallows.

 

Selffee says its technology is FDA-certified. It prints your selfie, which you can take in-store or transmit in advance, directly onto the product. The company says taste is not compromised.

This isn’t merely the next step for technology. This is the next step for humanity, one that allows us to fully realize our need to project ourselves into the world.

I wonder, though, whether people are prepared to put their money where their face is.

The campaign has so far only raised just over $15,000. This, with only 15 days to go, is somewhat short of its $30,000 target.

Could it be that humanity’s ego has a limit? Or is it merely that humanity has a limit when supporting Indiegogo campaigns?

 

Article Courtesy Of  CNet

12 Resolutions for Programmers

12 Resolutions for Programmers

 It’s important for programmers to challenge themselves. Creative and technical stagnation is the only alternative. In the spirit of the New Year, I’ve compiled twelve month-sized resolutions. Each month is an annually renewable technical or personal challenge:

Work, Workaholic, Writer, Programmer

  1. Go analog.
  2. Stay healthy.
  3. Embrace the uncomfortable.
  4. Learn a new programming language.
  5. Automate.
  6. Learn more mathematics.
  7. Focus on security.
  8. Back up your data.
  9. Learn more theory.
  10. Engage the arts and humanities.
  11. Learn new software.
  12. Complete a personal project.
  13. Read on for my suggestions.

 

Go analog

Programmers obsess over the discrete and the digital well past the point of diminishing returns. Thus, small investments in the analog yield comparatively large gains. Here’s a starter list of analog activities to try, each of which takes about a month of dedicated effort to transition out of the novice (and into the seasoned beginner) stage:

  • Cooking.
  • Hiking.
  • Skiing.
  • Astronomy.
  • Jogging.
  • Weight lifting.
  • Carpentry.
  • Martial arts.
  • Dance.

 

Stay healthy

Programmers tend to live sedentary lives, and we face unique health challenges from our occupation. We tend to ignore these challenges. Spend a full month each year tuning your exercise, diet and environment to promote durable healthy habits. Go to a clinic each year to get your blood pressure, cholesterol and blood sugar checked. Watch how these values change over time. If your wrists are starting to hurt or have been hurting, stop now and take action to combat RSI. Focus on improving your posture, with an emphasis on your shoulders and neck. I use a posture corrective brace to help: (Yes, it works for men too.) Track your weight, caloric intake and caloric burn. If necessary, reshape your lifestyle to promote healthier eating and weight loss. If you’re already trim, consider a one-year experiment in packing on strength and muscle. For the past several months, I’ve been trying out a standing desk attachment, and it’s been refreshing both mentally and physically. I estimate I’m burning an extra 360 calories a day from standing, but since standing has increased my overall activity, I suspect it’s more than that, and I find I have much higher focus when I stand than when I sit.

 

Embrace the uncomfortable

Since my early twenties, I’ve looked at my older peers and tried to figure out why some stagnate and how others stay vibrant. The answer is comfort. Comfort breeds technical fossilization. We find a system that works for us, and we stick with it. But, technology advances, and those that stay in their comfort zone never realize the gains from these advances. Practice becoming comfortable with being uncomfortable. Here’s a list of things that might make you uncomfortable at first:

  •  Switch to Dvorak.
  • Switch from emacs to vim or vice versa.
  • Stop using a mouse.
  • Use a different window manager.
  • Switch from cream and sugar to black coffee or straight tea.
  • Try out that “popular new piece of crap” for the full month.
  • Turn your cellphone off for one day a week.
  • Learn a one-handed input device.
  • Try a different OS.
  • Try a different version control system on a small project.
  • Forcibly abstain from the internet for one day a week.
  • Try a dietary restriction: go vegan, vegetarian, dairy-free, etc.
  • Eat a food you don’t like every day.
  • Put your dominant arm in a sling.
  • Learn to write with your non-dominant hand.
  • Start a blog.
  • Sign up for public speaking.
  • Listen to a kind of music you don’t like for a month.
  • Volunteer at a hospital or retirement home.
  • Fast once a week.
  • Travel to a country with a different language and/or culture.
  • Read an acclaimed novel from a genre that you don’t like.
  • Watch an acclaimed movie/show from a genre that you don’t like.
  • Learn to drive stick.
  • Argue against something you believe.

After a month of doing something different, decide whether you want to keep doing things differently or whether there are ways to blend the best of the new and the old. For instance, when I switched to vim after ten years of emacs, I set up the emacs-style key-bindings for insertion mode but kept vim. Update: Reader Shae Erisson wrote to relay the “rule of 3″ for embracing the uncomfortable: when a third person recommends you try something, you must try it. He also provide a “15 minute rule”: give something (such as a movie or TV show) the benefit of the doubt for 15 minutes. If you don’t want to continue after 15 minutes, drop it. I like both of these rules.

 

Learn a new programming language

Programming languages rise and fall. Programmers that only know one language will restrict their problem-solving abilities and their career prospects. Spend a full month absorbing a new language or a new language paradigm. Write a modest program in it. Here are a few less mainstream languages to learn:

  •  Racket.
  • Haskell.
  • Rust.
  • Scala.
  • Erlang.
  • Clojure.
  • SML/NJ.
  • OCaml.
  • Squeak.
  • Prolog.
  • Datalog.
  • miniKanren.

If you’re feeling particularly brave, take a crack at dependently-typed programming languages / theorem-proving systems:

  • Agda.
  • Coq.
  • Idris.

If you’re out of programming languages to learn, implement one!

 

Automate 

utomateThe most powerful underexploited skill programmers possess is the ability to automate both the virtual and the physical. If you’ve never built a robot, build a robot. At the very least, play with LEGO Mindstorms, or hack on an Arduino board. Survey the routine tasks you perform, and determine which can be automated in full or in part. Home automation technology has advanced considerably, and much is possible with DIY systems like Insteon. Take a month to invest in an automation project:

  •  Tune your mail filters or set up procmail.
  • Set up shell scripts to automate the frequent.
  • Create shell scripts to help your writing.
  • Learn how to use the cron tool.
  • Link closet lights to motion detectors.
  • Replace wires with wireless where possible.
  • Stop manual syncing: Move it to the cloud.
  • Set up a remotely controllable sound system.
  • Control your thermostat from your server.
  • Set up digital security cameras.
  • Create a digital intercom/baby monitor.
  • Have your coffee maker turn on automatically.
  • Set up a self-refilling water dish for pets.
  • Build a sensor-controlled pet door.
  • Hack a Roomba into a personal courier.

 

Learn more mathematics

At its heart, computer science is a mathematical discipline. Good mathematicians make good programmers. Do not let your mathematical faculty wither. Consider an annual one-month brush-up on one of these topics:

  •  Logic.
  • Discrete mathematics.
  • Calculus.
  • Probability.
  • Statistics.
  • Abstract algebra.
  • Number theory.
  • Category theory.
  • Order theory.

 

Focus on security

Few programmers practice good security habits. If you’re conscious of your own digital security, you’ll be more conscious of the security of the code you write. Check that you’re using unique, strong passwords for every site. Manage your passwords with an encrypted password manager like PasswordSafe or KeePassX. If you don’t already practice whole-disk encryption, set aside time to do it. (On a Mac, it’s painless to set this up.) Each year, study the top ten vulnerabilities for the past 12 months. How did they happen? What coding practices could prevent them in your code? Here are other security tasks you can try out:

  •  Learn the other stuff SSH can do.
  • Set up an SSL certificate in Apache.
  • Implement a cryptosystem like RSA or AES.
  • Try to crack the key to your wireless network.
  • Snoop your network traffic with WireShark.
  • Set up passwordless, key-based ssh login.
  • Run nmap on yourself. Configure your firewall.
  • Set up port-knocking.
  • Create an encrypted USB drive.
  • Set up log file monitors.
  • Set a cronjob to upgrade your packages regularly.

 

Back up your data

Each year, spend time reviewing your backup strategy. Invest a month in minimizing the cost of making backups. DropBox now presents a reasonable and simple option for backing up. Opt for defense in depth by assigning an individual hard drive to each computer and enabling automatic backups with tools like Time Machine. Keep critical files in version control with a geographically remote repository.

 

Learn more theory

Computer science has rich theoretical structure. Keep abreast of new developments and renew your mastery of the classics. Spend a month each year on topics like the following:

  •  Formal languages.
  • Automata and computability theory.
  • Complexity theory.
  • Formal methods.
  • Semantics.
  • Algorithms and data structures.

 

Engineers tend to look down on the arts.

What engineers fail to realize is that the arts and humanities augment technical excellence. Steve Jobs was fond of pointing out the importance of connecting technology and the humanities, and rightly so. Art and design have principles applicable to human-computer interaction. Don’t be ignorant of these principles. The arts and humanities train and sharpen intuition in a way that is difficult to quantify, yet is indispensable to of us whom work in quantified fields. Engineers need to learn how to measure what they can’t count, instead of counting only what they can measure. For at least one month per year, learn more about topics like the following:

  •  Industrial design.
  • Philosophy.
  • Photography.
  • Painting.
  • Sketching.
  • Music and music theory.
  • Film.
  • Literature.
  • History.
  • International relations.

Social sciences have much to offer computer scientists as well. Try economics and psychology in particular.

 

Learn new software

A good way to get ideas for your own software is to learn a new application or a new kind of application. For instance, if you’ve never used 3D modeling software, try Blender. Or, if you’ve never learned LaTeX, give it an honest effort. As you learn, note what you like and don’t like. Ask yourself honestly whether these observations are reflected in the software that you create. It’s hard to spot bad practice in your own work, but easy to spot in others’. No parent ever had an ugly child. Learn to recognize your ugly children.

 

Complete a personal project

If you spend all day writing code for someone else, remember why you became a programmer by writing a program for yourself. Spend a month each year on a project of your choosing. Bring the nucleus of that project to fruition. Open source it and release it to the world.

 

Article courtesy of Mat Might.

 

 

Smart Home for the Holidays: Honeywell’s Tech Tips

Smart Home for the Holidays: Honeywell’s Tech Tips

 

Home, Key, Keychain, Door Key, Turnkey

 

As we throw ourselves stomach first into the holiday season this week, many folks are going to be leveraging Smart Home tech and gadgets to ease the stress of the season. Honeywell has a few tips about how to get the most out of it.

 

Baby, it’s cold outside: With all that time in the kitchen, there’s really no good reason to stand any extra heat. Meanwhile, your guests are going to be smokin’ hot, so to help make everyone comfy, use that Smart Thermostat to lower the temperature more than usual during get-togethers, at least two degrees for every 10 people, according to Honeywell.

 

Over the hill and through the woods: If you’re going to be spending some time on the road visiting friends or relations, including at Grandmother’s house, make sure you know your house is safe and sound with vacation modes on thermostats and security systems. In addition, to mitigate potential damage from frozen or burst pipes, sensors like Honeywell’s Lyric Water Leak and Freeze Detector might be a good call.

 

No Silent Nights: Voice controls can be a life saver during the pre-, during and post-party scenes.  Voice command shortcuts can adjust environmental controls, music, and appliances at just the right time. Adjust the lights, lock the back door, drop the shades, turn on cameras; Honeywell says its Lyric system does all this and more.

 

“With the hustle and bustle of the holiday season, the comfort of having a secure and controlled home can truly allow homeowners to relax and enjoy this time with friends and family,” said Ted Booth, design director, Connected Home, Honeywell Home and Building Technologies. “Smart devices like the Lyric Water Leak and Freeze Detector or the Lyric Security and Home Control System give you the confidence that your home is safe while you’re away, and the versatile Lyric T5 Wi-Fi Thermostat and Lyric Round Wi-Fi Thermostat also give you control wherever you might be. They are all expertly designed so you’re never out of reach to check on the status of your home.”

 

Honeywell’s family of Lyric products is also compatible with a number of smart home ecosystems such as Apple HomeKit, Amazon Echo, Samsung SmartThings, and others.

 

Article courtesy of Iotevolutionworld.com by Ken Briodagh

13 awesome tech gifts for everyone on your holiday list

13 Awesome Tech Gifts For Everyone On Your Holiday List

jingle-bells-1873666_960_720

For the friend who wants to escape reality

You’ll be a superhero in your gamer giftee’s eyes when you present him or her with the View-Master Deluxe VR Viewer. It is the perfect and affordable way to introduce anyone to their own virtual reality headset and escape reality, especially when they can dive into practically-limitless VR content and adventures from View-Master or Google Cardboard. The headset comes with a headphone connector and focus wheel. ($39.99)


For the forgetful

For the friend you’re always waiting for because she can never find her keys, get her the Tile Mate. There’s a convenient hole for attaching to key chains, purses or backpacks. The distinct ringtones you can assign to individual Mates will make finding anything a cinch. (Individual $24.99; or 4-pack for $69.99)

For the fitness buff
The TomTom Touch hits all the things you’d expect from a fitness wearable like activity tracking, step counter, sleep monitor and heart rate monitor. But what it also offers, if you dare, is one touch body composition which measures fat and muscle percentages. Eeek. ($129.99)

For the constant communicator
For any parent who wants to keep tabs on the kids when they’re scattered about the house, Nucleus is an always-on intercom for monitoring a napping baby, calling kids down for dinner or just reminding them to clean that room. Nucleus also works with a complementary app for one-touch video calling from anywhere and syncs with Alexa for access to Amazon Prime Music, iHeartRadio and TuneIn. ($249 for one intercom; $398 for two; $597 for three)

For the adventurer
Every adventure deserves good tunes and the UE Roll 2 can handle anything you throw at it. The unique disc shape emits 360-degree sound, and the stretchy bungee means it can attach to anything. The best part is that it’s totally waterproof, so adventures by land or by sea come complete with music. ($99.99)

For the avid reader

Any loyalist who hasn’t yet made the switch to e-books because they like the feel of “real” books, will truly be amazed by how real pages appear on the new Kindle. It’s thin and light and while it might not have the heft of a physical book, thousands of titles (free for Amazon Prime members) at any reader’s fingertips certainly make up for it. ($59.99)

For the foodie
Home cooks can deep fry to their hearts content with the new KRUPS Deep Fryer. There are four digital presets for fried mainstays: chicken nuggets, onion rings, fries and doughnuts. It fits three different baskets so you can experiment with frying several things at once. Deep-fried kale, anyone? ($79.99)

For the note-taker
Your friend is an assiduous note taker and is always making lists of some sort. With the Wacom Bamboo Slate, any notes written on this smartpad are instantly be synced to a mobile device. The level of detail even captures the slightest stroke of the pen, and having instant digitized notes without worrying about cumbersome styli is a boon for note takers everywhere. ($129.95)

For the risk-taker
Spontaneous fires haven’t given hoverboards a great name, but they certainly weren’t UL-certified and flame resistant like the Jetson V6. Powered by LG, this hoverboard works with riders of all levels and also features Bluetooth speakers and LED lights. Definitely in the splurge category, but will exempt you from having to buy another present for the recipient for a whole year. Maybe even two. ($399.99)

For the friend who never calls you back
If you’re sure it’s not because he is avoiding you, it’s likely that he’s just super busy. Anyone who has that much going on could surely use an extra pair of hands, or Fancy Hands, that is. The base package gives you five requests a month, whether it’s negotiating your cable bill or buying Aunt Jane a present. ($29.99/month)

For the traveler
We’ve all been there, at the airport check-in, frantically transferring items from suitcase to carry-on to avoid the hefty overweight charges. With the AirScale by Oaxis, this nifty gadget can weigh luggage up to 88 lbs. and also is a power bank. No extra fees and a fully juiced phone make any flying experience better. ($59)

For the art lover
Art is subjective, which is why this EO2 digital frame by Electric Objects is perfect for art lovers everywhere. With thousands of masterpieces to choose from, users can switch from impressionists to modern photography on a whim using a complementary app. Definitely pricey, but not when compared to a trip to the Louvre. ($299 for frame, $9.99/month for art subscription)

For the sentimental-at-heart
Seeing a constant slideshow of favorite memories with favorite people is sure to brighten any day and the Nixplay Iris is a beautiful way to do that. Simply send photos to this stylish 8” frame and photos instantly appear to the delight of those viewing it. Perfect for grandparents who never get tired of seeing those cute kid photos. ($199.99)

 

Article courtesy of Mashable.com