Smart Locks Bricked by Bad Update? The Right Approach!

I read some news (ExtremeTech, Techcrunch) about how “smart” wifi-connected locks sold by Lockstate got bricked by an automatic over-the-network update. This sounds bad – but it is bad for a good reason. I think the company should be lauded for actually having the ability – and laughed out for royally botching it.

Continue reading “Smart Locks Bricked by Bad Update? The Right Approach!”

Intel Blog Post: The More the Merrier – Integration and Virtual Platforrms

Integration is hard, that is well-known. For computer chip and system-on-chip design, integration has to be done pre-silicon in order to find integration issues early so that designs can be updated without expensive silicon re-spins. Such integration involves a lot of pieces and many cross-connections, and in order to do integration pre-silicon, we need a virtual platform.

Continue reading “Intel Blog Post: The More the Merrier – Integration and Virtual Platforrms”

Android 7.1 Screen Scaling – Keyboard Buttons the Same Size, Text Shrinks :)

After updating my Sony Xperia Z5 Premium from 2016 to Android 7.1, I noticed the settings for screen scaling (known as Display Size). The setting has probably been around since I got Android 7 (Nougat) on the device a while back, but I did not notice it until now.  I tried it out, and it is kind of useful to shrink text a bit to get more onto the rather large screen of the device. But the keyboard behaves in a rather funny way…

Continue reading “Android 7.1 Screen Scaling – Keyboard Buttons the Same Size, Text Shrinks :)”

Off-Topic: Playa Garden Hotel & Spa, and Mallorca

It is summertime, and time for another off-topic blog post about travel. This year, we took our family vacation on the island of Mallorca, at the Playa Garden Hotel & Spa. It is located in Playa de Muro, between Port d’Alcudia and Can Picafort on the east coast of Mallorca. The goal was to enjoy a bit of sun & sea, and that worked out very well. It looks like we were lucky in our hotel choice, too.

Continue reading “Off-Topic: Playa Garden Hotel & Spa, and Mallorca”

Subscription Software = Better Programmer-User Alignment (?)(!)

IEEE Spectrum ran a short interview with Thomas Knoll, the creator of Photoshop, who made a very interesting point about the move to subscription-based software rather than one-time buys plus upgrades. His point is that if you are building based sold using the “upgrade model”, developers have to create features that cause users to upgrade.  In his opinion, that means you have to focus on flashy features that demo well and catch people’s attention – but that likely do not actually help users in the end.

Continue reading “Subscription Software = Better Programmer-User Alignment (?)(!)”

Intel Blog: Finding BIOS Vulnerabilities with Symbolic Execution and Virtual Platforms

I have just published a piece about the Intel Excite project on my Software Evangelist blog at the Intel Developer Zone. The Excite project is using a combination of of symbolic execution, fuzzing, and concrete testing to find vulnerabilities in UEFI code, in particular in SMM. By combining symbolic and concrete techniques plus fuzzing, Excite achieves better performance and effect than using either technique alone.

Continue reading “Intel Blog: Finding BIOS Vulnerabilities with Symbolic Execution and Virtual Platforms”

Assembly Programming as Game: “Human Resource Machine”

Human Resource Machine, from the Tomorrow Corporation, is a puzzle game that basically boils down to assembly-language programming. It has a very charming graphical style and plenty of entertaining sideshows, hiding the rather dry core game in a way that really works! It is really great fun and challenging – even for myself who has a reasonable amount of experience coding at this low level. It feels a bit like coding in the 1980s, except that all instructions take the same amount of time in the game.

Continue reading “Assembly Programming as Game: “Human Resource Machine””

Off-Topic: Getting Rid of the Heads in Skype for Business

Skype for Business is an interesting beast.  It is a nice little program for internal collaboration, but some of its behaviors are just super-annoying. One my pet peeves is the fact that when you get into a meeting with screen sharing you have a bunch of big heads covering up a sometimes significant chunk of the materials being presented. I finally figured out how to get rid of them.  It comes down to the view mode. This little icon in the toolbar:

Continue reading “Off-Topic: Getting Rid of the Heads in Skype for Business”

Simulation and the Apollo Guidance Computer

Today, when developing embedded control systems, it is standard practice to test control algorithms against some kind of “world model”, “plant model” or “environment simulator”.

Using a simulated control system or a virtual platform running the actual control system code, connected to the world model lets you test the control system in a completely virtual and simulated environment (see for example my Trinity of Simulation blog post from a few years ago). This practice of simulating the environment for a control computer is long-standing in the aerospace field in particular, and I have found that it goes back at least to the Apollo program.

Continue reading “Simulation and the Apollo Guidance Computer”

Intel Blog: How 3dfx was Built on a Simulator

In the early 1990s, “PC graphics” was almost an oxymoron. If you wanted to do real graphics, you bought a “real machine”, most likely a Silicon Graphics workstation. At the PC price-point, fast hardware-accelerated 3D graphics wasn’t doable… until it suddenly was, thanks to Moore’s law. 3dfx was the first company to create fast 3D graphics for PC gamers.  To get off the ground and get funded, 3dfx had to prove that their ideas were workable – and that proof came in the shape of a simulator.  They used the simulator to demo their ideas, try out different design points, develop software pre-silicon, and validate the silicon once it arrived.  Read the full story on my Intel blog, “How Simulation Started a Billion-Dollar Company”, found at the Intel Developer Zone blogs.

gem5 Full Speed Ahead (FSA)

I had many interesting conversations at the HiPEAC 2017 conference in Stockholm back in January 2017. One topic that came up several times was the GEM5 research simulator, and some cool tricks implemented in it in order to speed up the execution of computer architecture experiments. Later, I located some research papers explaining the “full speed ahead” technology in more detail. The mix of fast simulation using virtualization and clever tricks with cache warming is worth a blog post.

Continue reading “gem5 Full Speed Ahead (FSA)”

Intel Blog: Continuous Delivery for Embedded Systems and how Simulation can Help

Doing continuous integration and continuous delivery for embedded systems is not necessarily all that easy. You need to get tools in place to support automatic testing, and free yourself from unneeded hardware dependencies. Based on an inspiring talk by Mike Long from Norway, I have a piece on how simulation helps with embedded CI and CD on my Software Evangelist blog on the Intel Developer Zone.

Off-Topic: Nerja, Costa del Sol, Spain

I and my wife recently took a short vacation in Nerja in Spain, a tourist town on the Costa del Sol. Late February was definitely low season, which made for a rather relaxing experience without the huge crowds that would be expected to fill up the place later in the year.

Continue reading “Off-Topic: Nerja, Costa del Sol, Spain”

”Figure out What to Do”, Says the Manual

I just spend some hours building a new living room PC for the home. I based on common components like a Fractal Design Node 202 chassis and an MSI Z270i motherboard for my Intel Core i7-7700 processor.  Trying to figure out how to put it together was a bit interesting though – especially if I had tried to do so without the help of the Internet.  The manuals that came with some of the components were just completely useless, essentially boiling down to “please figure out what to do”.

Continue reading “”Figure out What to Do”, Says the Manual”

Intel Blog: The Right Mindset and Toolset for Testing

I have a two-part series (one, two) on testing posted on my Software Evangelist blog on the Intel Developer Zone.  This is a long piece where I get back to the interesting question of how you test things and the fact that testing is not just the same as development.  I call the posts Mindset and Toolset

Continue reading “Intel Blog: The Right Mindset and Toolset for Testing”

Intel Blog: Testing and the ESA Schiaparelli Lander

It is really sad that the European Space Agency (ESA) lost their Schiaparelli lander last year, as we will miss out on a lot of Mars science. From a software engineering and testing perspective, the story of why the landing failed  rather instructive, though. It gets down to how software can be written and tested to deal with unexpected inputs in unexpected circumstances. I wrote a piece about this on my blog at the Intel Developer Zone.

Simulics – A New Commercial Reverse Debugger

simulics_logo_just_logoA new entry just showed up in the world of reverse debuggingSimulics, from German company Simulics. It does seem like the company and the tool are called the same. Simulics is a rather rare breed, the full-system-simulation-based reverse debugger. We have actually only seen a few these in history, with Simics being the primary example. Most reverse debuggers apply to user-level code and use various forms of OS call intercepts to create a reproducible run. Since the Simulics company clearly comes from the deeply embedded systems field, it makes sense to take the full-system approach since that makes it possible to debug code such as interrupt handlers.

I have also updated my history of commercial reverse debuggers to include Simulics.

Continue reading “Simulics – A New Commercial Reverse Debugger”

Intel Blog: Using CoFluent to Model and Simulate Big Data Systems

Cofluent studio Intel CoFluent Technology is a simulation and modeling tool that can be used for a wide variety of different systems and different levels of scale – from the micro-architecture of a hardware accelerator, all the way up to clustered networked big data systems. On the Intel Evangelist blog on the Intel Developer Zone, I have a write-up on how CoFluent is being used to do model just that: Big Data systems. I found the topic rather fascinating, how you can actually make good predictions for systems at that scale – without delving into details. At some point, I guess systems become big enough that you can start to make accurate predictions thanks to how things kind of smooth out when they become large enough.

SiCS Multicore Day 2016 – In Review

sics-logo The SiCS Multicore Day took place last week, for the tenth year in a row!  It is still a very good event to learn about multicore and computer architecture, and meet with a broad selection of industry and academic people interested in multicore in various ways.  While multicore is not bright shiny new thing it once was, it is still an exciting area of research – even if much of the innovation is moving away from the traditional field of making a bunch of processor cores work together, towards system-level optimizations.  For the past few years, SiCS has had to good taste to publish all the lectures online, so you can go to their Youtube playlist and see all the talks for free, right now!

Continue reading “SiCS Multicore Day 2016 – In Review”

Intel Blog: Why Target Variation Matters (finding a Xen bug)

xen_project_logo_really_small

Simics and other simulation solutions are a great way to add more variation to your software testing. I have just documented a nice case of this on my blog at the Intel Developer Zone (IDZ), where the Simics team found a bug in how Xen deals with MPX instructions when using VT-x.  Thanks to running on Simics, where scenarios not available in current hardware are easy to set up.

Continue reading “Intel Blog: Why Target Variation Matters (finding a Xen bug)”

UndoDB Recording during Automatic Testing

undo-logoUndoDB is an old player in the reverse debugging market, and have kept at it for ten years.  Last year, they released the Live Recorder record-replay function.  Most recently, they have showed an integration between the  recorder function and Jenkins, where the idea is that you record failing runs in your CI system and replay them on the developer’s machine.  Demo video is found on Youtube, see https://www.youtube.com/watch?v=ap8552P5vss.

Continue reading “UndoDB Recording during Automatic Testing”

Reverse Debug with Hardware in the Loop

reverse iconLast year (2015), a paper called “Don’t Panic: Reverse Debugging of Kernel Drivers” was presented at the ESEC/FSE (European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering) conference. The paper was written by Pavel Dovgalyuk, Denis Dmitriev, and Vladimir Makarov from the Russian Academy of Sciences. It describes a rather interesting approach to Linux kernel device driver debug, using a deterministic variant of Qemu along with record/replay of hardware interactions.  I think this is the first published instance of using reverse debugging in a simulator together with real hardware.

Continue reading “Reverse Debug with Hardware in the Loop”

Kindle App on Android: Turning off Annoying Page Curl

kindle-app-curlA recent update to the Amazon Kindle app on my Android devices introduced a severely annoying page curl animation when flipping through pages in a book. This unnecessary animation slows things down and disrupts the reading flow, or at least that is my opinion. It was really hard to find any kind of help on the Amazon pages or elsewhere on the Internet for how to turn it off. I finally figured it out, and here is how I did it so that other people with the same problem can search and find a solution…

Continue reading “Kindle App on Android: Turning off Annoying Page Curl”

Presenting about Simics and SystemC at DVCon Europe 2016

I am going to present a paper about our new SystemC Library in Simics, at the DVCon Europe conference taking place in München next month. The paper is titled “Integrating Different Types of Models into a Complete Virtual System – The Simics SystemC* Library”, and I authored it together with my Intel colleagues Andreas Hedström, Xiuliang Wang, and Håkan Zeffer.

Continue reading “Presenting about Simics and SystemC at DVCon Europe 2016”

Intel Blog: Using Simulation Before Code to Architect IoT Software

intel sw small

On my Intel Software Evangelist blog, I just published an updated version of an interview I first published back in May, about how to use Intel CoFluent Studio for IoT system architecture. This is a really cool story, about how you can use a calibrated simulation model to architect and analyze software performance before actually writing the code! I

Intel Blog: Simulating Six Terabytes of RAM

intel sw smallMy first blog post as a software evangelist at Intel was published last week. In it, I tell the story of how our development teams used Simics to test the software behavior (UEFI, in particular) when a server is configured with several terabytes of RAM. Without having said server in physical form – just as a simulation. And running that simulation on a small host with just 256 GB of RAM. I.e., the host RAM is just a small fraction of the target. That’s the kind of things that you can do with Simics – the framework has a lot of smarts in it.

It was rather interesting to realize that just the OS page tables for this kind of system occupies gigabytes of RAM… but that just underscores just how gigantic six terabytes of memory really is.

Does Documentation Matter for a Product?

How important is the documentation (manual, user guide, instruction booklet) for the actual quality and perceived quality of a product? Does it materially affect the user?  I was recently confronted by this question is a very direct way.  It turned out that the manual for our new car was not quite what you would expect…

skoda1

This is just the first page, and as you can see if you know Swedish or German or both, it is a strange interleaving of sentences in the two languages.

Continue reading “Does Documentation Matter for a Product?”

Corsair K65 and K70 Keyboards

When my old CM Storm mechanical gaming keyboard stopped working a while ago, I looked around for replacement alternatives. I ended up getting the new Corsair K65 RGB LUX narrow keyboard. A while earlier this year, I got a Corsair K70 at work. Thus, I can do a double review on a pair of closely related keyboards, but with different key switches, sizes, and backlighting systems.

Continue reading “Corsair K65 and K70 Keyboards”

Off-Topic: Outlook Plugins do not activate when program starts – registry fix

skypemeetingIn my sporadic series of IT fixes that I happen to find, here is another one about how to fix the load behavior of plugins in Outlook.

This is a solution to a problem that I have had myself with plugins for Outlook. I assume it works the same for other office programs. Basically, some plugins, in particular the Skype Meeting/Lync Meeting plugin, would not load when Outlook started and I was forced to manually enable it in the add-ons manager each time. Highly annoying. I managed to fix it by doing a small registry fix.

Continue reading “Off-Topic: Outlook Plugins do not activate when program starts – registry fix”

Off-Topic: Cruising Holiday

The family and I spent last week on a cruise in the Mediterranean with Royal Caribbean Cruises (RCC). It was a wonderful vacation, and very family friendly. We did a number of shore excursions and got to see historical landmarks like the stadium at Olympia where the original Olympic games were held. Lounging by the pool on the ship was nice on our sea days, if a bit crowded. Service was fantastic, and you really do not need to think much at all about practical things while onboard. It just happens. Very relaxing. If I compare it to a typical all-inclusive hotel vacation, it is definitely higher quality with the added benefit of moving around and seeing multiple places in a week.

Continue reading “Off-Topic: Cruising Holiday”