MiserWare Nominated for Two TechNite 2013 Awards

May 13th, 2013

May 11th 2013, Blacksburg, VA: MiserWare, Inc., a Blacksburg, Virginia startup is one of ten companies nominated for TechNite 2013’s Rising Star Award. This award recognizes the region’s top up-and-coming technology startup or small business, at an event attended by over 400 technology leaders.

Every year, the Roanoke – Blacksburg Technology Council recognizes the New River Valley’s technology achievements at TechNite, an awards banquet in Roanoke, Virginia. According to the RBTC, TechNite allows nominees and attendees to network with over 400 other leaders in business and innovation. The evening is highlighted with an awards ceremony, where leaders will be recognized in six categories: Rising Star, Entrepreneur, Regional Leadership, Innovation, Educator, and People’s Choice.”

MiserWare creates energy efficiency software for laptops – software that is in use by over 320,000 people in over 160 countries across the world. Founded in 2007 by Kirk Cameron, a Virginia Tech Computer Sciences professor and a graduate student Joseph Turner, this Virginia Tech technology spinout uses patented intelligent power management software to save hundreds of thousands of dollars in enterprise energy costs. MiserWare’s new product, FatBatt, is an interactive program allowing users to maximize their laptop battery life, solving a frustrating problem that has plagued laptop users across the board. MiserWare’s products have been listed on TIME Magazine’s Top 20 Ways to Go Green and PC Magazine’s Best Free Software and received a CNET Editor’s Rating of 4.5 stars out of 5.

MiserWare’s co-founder, VP of Engineering, and lead developer of FatBatt, Joseph Turner, is also one of ten nominated personally for the Entrepreneur Award. “Entrepreneurs are a different breed,” RBTC says. “Sometimes it takes nerves of steel to blaze a new path. This award recognizes someone in our community who exemplifies what it means to be a risk-taker in the technology field.”

According to MiserWare coworker Erica Putman, “My supervisor, Joseph, epitomizes what it means to be an entrepreneur, inspiring confidence in his employees, envisioning and building products that truly help others, all while carrying the stresses and risks of running a small business on his shoulders. I’m proud to have him as a boss.”

TechNite takes place on Thursday, May 16th, 2013 at the Hotel Roanoke & Conference Center.

#######

For more information, contact MiserWare at thefatbatt@miserware.com.

Announcing the Smartphone Fifty: Top 50 List Ranks Smartphone Battery Life

May 2nd, 2013

Which phone gives you the most juice for your dollar?

Read the rest of this entry »

MiserWare Becomes a New AASHE Business Member

April 26th, 2013

MiserWare, Inc. Deepens Commitment to Sustainability

MiserWare, Inc. has recently become a member of the Association for the Advancement of Sustainability in Higher Education, an association of colleges and universities working to create a sustainable world. Through its membership in AASHE, MiserWare will be able to better understand and assist higher education institutions in advancing their sustainability initiatives.

“Our green IT software, Granola Enterprise decreases computer energy use by up to 35%, with no impact on performance,” said Erica Putman, head of MiserWare outreach. “If it ran on every computer used in universities nationwide, Granola could cut power bills by millions of dollars, helping higher education communities meet their energy-related sustainability goals. We’re excited to start our membership with AASHE!”

Read the rest of this entry »

Announcing FatBatt Fifty: Helping Laptop Customers Shop For Battery Life

April 12th, 2013

Which laptop will top the list?

Read the rest of this entry »

Announcing FatBatt: Get the Most Out of Your Laptop Battery

February 20th, 2013

MiserWare, Inc. is pleased to announce the launch of FatBatt power management software for Windows laptops. FatBatt allows you to optimize and maximize your laptop’s battery, finally solving the problem of painfully low battery life.

Read the rest of this entry »

Granola Enterprise Benchmarking

September 6th, 2012

Best practices for benchmarking Granola Enterprise

We have a lot of users ask us about the best way to benchmark Granola Enterprise. Power-performance benchmarking in general can be difficult, but the tools provided by Granola Enterprise make the data collection and analysis much easier, and the accurate software metering saves the cost (and pain) of hardware metering.

Read the rest of this entry »

Granola Personal 5.0.11 Release Notes

September 3rd, 2012

Today we rolled out a quick update to Granola Personal that solves a connectivity issue that many users were experiencing during machine boot. As usual, your software should update automatically, but if you want you can also download the software directly and run the installer to upgrade.

Granola Personal 5.0.10 Release Notes

August 28th, 2012

We released a new version of Granola Personal this morning, our first release since April. The new version includes a couple of bugfixes based on errors users have reported.

Changelog:
* Improved error handling for web-facing edge cases
* Upgrade Python library to version 2.7.3 to fix antivirus warning

Tight-lipped throwdown: Python vs. Coffeescript

June 28th, 2012

TL;DR: Coffeescript, while not as polished, facilitates writing code with a similar level of expression as Python, allowing for terse yet readable source.

One of the main reasons I love Python is the level of expression, particularly as that applies to list processing and more generally functional programming. With list comprehensions and built-ins like filter and map, you can write code that almost reads word-for-word like the question it is trying to answer.

Partly for this reason, writing Javascript (or any other loop-oriented language) has grown to feel increasingly cumbersome. When I decided to take a look at Coffeescript a couple months ago, I was pleasantly surprised to learn that it too contained list comprehensions and rudimentary filtering. Combined with some of the functional tools of Javascript’s Array type, this promised to let my write lovely, expressive code in the browser. Or server side. Or whatever, Javascript is a thing now.

As part of that learning process, I decided to write a Hanging With Friends solver (finished product) to get a taste for Coffeescript. I had already written one in Python, and I wanted to see how different the two would be. You can find the full code of the core solvers here. Here are some of my thoughts:

Coffeescript list comprehensions go a long way toward cleaning up ugly sections of loop-riddled code. This remains my favorite part of CS. As an example, to create a set of sets of words of a certain length:

Python

word_sets = [filter(lambda x: len(x) == l, words) for l in lengths]

Coffeescript

word_sets = (x for x in words when x.length == l for l in lengths)

The lack of a built-in way to do filtering makes the CS version less readable, but it is still very concise. Multiple levels of nesting can also make the code harder to read, though this is a problem in Python as well. Worse though is the way different structures are expressed in Coffeescipt. For instance, in Python, you can do this:

>>> [a+b for a in range(1,4) for b in range(1,4)]
[2, 3, 4, 3, 4, 5, 4, 5, 6]
>>> [[a+b for a in range(1,4)] for b in range(1,4)]
[[2, 3, 4], [3, 4, 5], [4, 5, 6]]
>>> [[[a+b] for a in range(1,4)] for b in range(1,4)]
[[[2], [3], [4]], [[3], [4], [5]], [[4], [5], [6]]]

In Coffeescript, though, the rules are next to inscrutable.

coffee> (a+b for a in [1...4] for b in [1...4])
[ [ 2, 3, 4 ],
  [ 3, 4, 5 ],
  [ 4, 5, 6 ] ]
coffee> ((a+b for a in [1...4]) for b in [1...4])
[ [ 2, 3, 4 ],
  [ 3, 4, 5 ],
  [ 4, 5, 6 ] ]
coffee> (((a+b) for a in [1...4]) for b in [1...4])
[ [ 2, 3, 4 ],
  [ 3, 4, 5 ],
  [ 4, 5, 6 ] ]
coffee> ([a+b for a in [1...4]] for b in [1...4])
[ [ [ 2, 3, 4 ] ],
  [ [ 3, 4, 5 ] ],
  [ [ 4, 5, 6 ] ] ]
coffee> [[a+b for a in [1...4]] for b in [1...4]]
[ [ [ [Object] ],
    [ [Object] ],
    [ [Object] ] ] ]

I couldn’t figure out how to get a flat list like the first Python example above. Maybe I’m just doing it wrong. As another issue, the different format for iterating over keys in an Object is less clean than the Pythonic style of iteration and seems to afford less flexibility. Ultimately, though, list comprehensions can handle most situations that I would field with map/filter and list comprehensions in Python.

The conditional syntax of the list comprehensions certainly limits the balance between terseness and readability. For instance, it is easy to first filter then map, but it’s a good bit messier to go the other way.

n = (x / 6.0 for x in [123...234] when (x*x) % 17 == 1)
n = (y for y in ((x*x) % 17 for x in [123...132]) when y % 5 == 1)

In Python, it’s straightforward and easy to understand: just swap the order.

n = map(lambda x: x / 6.0, filter(lambda x: (x**2) % 17 == 1, range(123, 234)))
n = filter(lambda x: x % 5 == 1, map(lambda x: (x**2) % 17, range(123, 132)))

Many of the other shortcomings of Coffeescript are less a failing of the list comprehensions themselves than a lack of expressive built-ins like set which must be shimmed. Many of my most elegant lines of code do things like build a dictionary of unique sublists based on a filtered, larger list. This sort of thing is harder to do in Coffeescript.

Finally, and this is a bit nitpicky, but the order of operations on the operator aliases don’t match the expectation of natural language. It was confusing to find that is not and isnt do two different things.

Despite the focus on shortcomings, I really like Coffeescript as a language, particularly compared to raw Javascript. What are your opinions of the two languages? Have I missed any shortcomings? Am I doing it wrong?

_____
Joseph

Improve the reliability of your PC

June 26th, 2012

TLDR – scale your CPU speed to match demand and your PC will be more reliable.

Microsoft Research has published a very interesting peer reviewed paper where they look at the causes of crashes in over a million consumer PCs. This is the most comprehensive investigation into crashes on home PCs that anyone has ever undertaken. The paper has a bunch of cool findings including what you can do to reduce the chances your PC will crash or die completely.

Apart from hardware completely killing itself, we have all been victims of software crashes. It is easy to blame these on the programmer but sometimes the hardware itself has done something to pull the rug out from under your program. Sometimes it is just an essay you have been working on, but every now and then it is right before your game gets saved.

Microsoft found, after studying the crash reports from more than a million PCs that there are a few things we can do to make our machines live longer. Some people will intuitively have guessed some of these conclusions but this is the first time we have had some facts to back them up.

Overclocking

When Intel or AMD make a CPU they perform a bunch of tests at the factory to choose which clock speed the CPU can reliably run at. You do not have to run your CPU at this manufacturer specced speed though. For years people have been overclocking their CPUs to run faster. When overclocking a CPU you ramp up the speed iteratively until you find a speed which seems to give you system stability. Often you will upgrade cooling or buy a bigger power supply to keep the CPU running at the higher speed. Microsoft found that over an 8 month period a CPU that is overclocked is up to 20 times more likely to have a failure than at a vendor rated speed. Microsoft don’t names names, but one CPU vendor does better when overclocked (figure it out).

Underclocking

People have been wondering if reducing the clock speed of a CPU will make it more reliable. The idea is that reducing the speed means CPUs do not get as hot and require less electricity, the reverse of overclocking. Microsoft found that running your CPU at a lower speed meant machines were up to 80% less likely to crash in the 8 month period.

The paper shows that reducing the CPU speed reduces the failure rate and suggests that you can minimize the likelihood of a CPU crash by operating at the slowest CPU speed to achieve the desired performance.

Matching CPU Speed to System Demand

As Microsoft points out, we PC folks already have a technology in our computers that can control the CPU speed called DVFS. The difficult thing is matching the speed of the CPU to the demand. If you set the speed too low you will be slowing the machine down, if you set it too high then you are needlessly taxing the CPU as well as wasting energy.

MiserWare has a consumer version of its power management software called Granola Personal which was designed to match CPU speed to system demand. We made it primarily to reduce your energy footprint but it will do exactly what Microsoft suggests, set your CPU to the lowest speed it needs to run at.

Download Granola Personal

Granola settings window

Granola is available for PCs running Windows XP-7 and Linux Ubuntu, Fedora, Debian and RHEL. By default after it is installed it will manage your CPU in “MiserWare mode” which will change the CPU speed to match demand. You can also force your CPU to its lowest speed if you wish, using the settings window which looks like the screenshot. Matching your CPU speed to demand has the bonus of saving you some money on your power bill.

If you have a large number of PCs like a university lab and do not want to have to install Granola Personal on every machine there is a simpler to version for you to use. Granola Enterprise (free to try) is designed to be rolled out on large numbers of machines and be centrally managed. You can find out more about it here.

Too Short – Want To Read More

If you find this interesting I highly recommend reading the paper. It has a wealth of cool stuff and technical details.


Mat