Going Norrland

This year’s vacation trip was a roadtrip into Norrland, the northern part of Sweden. With the ongoing Covid-19 pandemic, it seemed safer and fairer to the healthcare system to stay in our own country.  It was also an opportunity, since I have wanted to and look at some places up north for quite a while now (such as Bodens Fästning and Hemsö Fästning).

Continue reading “Going Norrland”

Hemsö Fästning – Coastal Defense from the 1950s

Continuing on my blog posts about our Hemester (part 1 covered Bodens Fästning), this blog post will cover Hemsö Fästning. Both are fascinating places, but also rather different, and clearly demonstrate the changes from the early 1900s to the Cold War of the 1950s.

Continue reading “Hemsö Fästning – Coastal Defense from the 1950s”

Bodens Fästning – A Fortress in the North of Sweden

Due to Covid-19, this year’s summer vacation involved a “staycation”, or “hemester” as we say in Swedish. We went up north in Sweden, and took the chance to visit some military museums. In particular, the fortresses at Hemsön and Boden (fästning means fortress). Both are fascinating places, but also rather different, and clearly demonstrate the developments from the early 1900s to the Cold War of the 1950s. This post covers Boden, with a separate post for Hemsö released a few days after this post.

Continue reading “Bodens Fästning – A Fortress in the North of Sweden”

The Virtual DAC 2020

I have attended the Design Automation Conference (DAC) occasionally for the past decade – maybe every second or third year. The DAC is typically mostly about the lower levels and the backend of hardware design, but there is always something to learn about virtual platforms and related topics closer to my interests. This year, like last year, I got a presentation (and poster) accepted for the Designer track. The DAC organizers held out hope for a physical conference for quite a while (back in early March it seemed rather unlikely that this would still be with us in July…). However, a physical conference was not to be, and the DAC switched to a virtual format in early May.

Continue reading “The Virtual DAC 2020”

Recalling the Beginning of Covid-19 and Work-from-Home

Recently, we had a discussion at work (in our daily virtual team “fika”) where we reflected on just how many weeks we had been working from home due to the Covid-19 pandemic. It has been quite a few; I last saw the office in week 11, and week 19 is beginning… so I am looking at eight weeks personally. Just how did it all begin? I thought it useful to go back and try to remember how we got to this point. In hindsight, I never thought it would be this huge.

Continue reading “Recalling the Beginning of Covid-19 and Work-from-Home”

Adjusting to Work-from-Home: Remote Live Simics Training

In the current world-wide lockdown due to Covid-19, many things that were done in-person in the past have to become virtual. The Simics® New User Training that we run at Intel and with our customers and partners is no different. In normal times, we run in-person classes around the world, but that is not an option right now.  Thus, we shifted to running remote live classes as a substitute for the time being. This blog shares some of my experience from running remote live classes.

We changed the cover page of the Simics training to symbolize the change.

Alternatives

As I see it, there are two alternatives to in-person training:

  • Recorded videos
  • Live teaching, done remotely

The remote-live format is superior in my opinion since it keeps the energy and immediacy of an in-person class and allows the students to ask questions interactively. It also requires a lot less work to do and can be set up pretty much immediately.

Recording a quality video is a ton of work. You need to write a script and follow it To. The. Word. While still sounding natural. Add editing and retakes, and the pandemic might well be over before the work is completed.

Reformatting for Remote Live

The standard Simics New User Training format is to do two full days in-person, for approximately eight hours per day. Lectures and labs are interleaved, giving the teacher some time to catch her or his breath between sections, and providing students a chance to immediately practice what they learned in the lectures.

That format does not work for remote live training – having the conference call sit idle while students work is not a workable method (I have discussed this with other training organizers in the past, and most agree that labs are best done offline and not in-conference). Instead, lectures and labs have to be split up in a more coarse-grained fashion.

Another aspect to consider is attention span. For a student, it is a lot easier to stay focused on a topic when in the same room as the teacher, and it is easier for the teacher to adjust to the attention level of the students. Previously, I did some improvised remote trainings that crammed the lectures into two four-hour sessions. That was totally exhausting for everyone involved.

The current concept is shown below. The course is spread out over three days, with about three hours of lectures each day (and a rather large buffer towards the end). Each day also has a set of associated labs that the students are expected to do on their own after lunch.

Reformatting the in-person class to remote live

The topic sections of the training had to be reshuffled a bit to fit this format and get the labs spread out in a reasonable way. It is not exactly the same sequence as in the in-person training, but fortunately some of the sections were rather stand-alone and possible to move around a bit in the schedule.

There are still some small breaks inserted between the sections, just like when teaching live. When working from home, even five minutes is enough to get a cup of coffee or other refreshment.

Remote Live Training Technology – Video, Screenshare, and Chat

For the lecture part, it made sense to use video of the teacher alongside the slides. We did not use video for the students, since that would just waste bandwidth and reduce the quality of the screen-share. It is also hard for the trainer to both present and look at the student video streams at once – especially if there are tens of students in the class. I used to be rather skeptical to video conferencing, but I must admit to coming around to finding it rather valuable.

For the labs, it makes sense to use chat in an app like Microsoft Teams or Skype to answer questions. There are usually not all that many questions, and having the teacher sit and wait on the video conference for the occasional interaction is not an efficient use of time. When I present a class live, I tend to walk around the front of the room and point at the projector screen using either hands or a laser pointer. Sometimes, to illustrate a point or an answer to a question, I will draw things on white boards or a flip board. Neither of these things work with a remote screen-sharing session, but using annotation tools to draw on top of what is shown on the screen offers a decent replacement. The screenshot below shows an example of a heavily-annotated slide from the training.

Annotating a slide as a way to make the presentation a bit more lively

The Gear

It is quite feasible to run a training session like this from home using an average laptop. However, it is worth investing a little bit in audio and video gear to provide the best experience and the most effective teaching setup.

My personal home working setup, used to run Simics training in the remote live format.

You want a good web camera, instead of using the rather poor camera built into most laptops. It makes sense to put it on top of an external screen to get it up a bit compared to where a laptop screen typically resides and avoid the “up your nose” angle. For the sound, a headset works, but it is better to use a good external microphone. This looks better on the video (no headset on top of the speaker) and produces superior sound compared to most headsets. Using a “pop filter” is definitely beneficial. Figure 3 shows my personal home office setup used in the training, including an external keyboard and mouse.

For best results, it is good to work in a room featuring some amount of fabric to dampen echos and provide a better sound environment. For the video, a reasonably neutral background makes sense. Also for the video, it is a good idea to avoid clothes with busy patterns as that tends to result in very messy videos (especially when the image is shrunk down to a thumbnail).

This is not a good choice of shirt for a video session (but it is one of my favorites)

One upside of live remote training is that product demos using screen sharing actually work better than at most in-person trainings since reading a screen with small fonts from the back of a room is a lot harder than seeing it on your own local screen.

Simics is also a good subject for remote training in that it is just a piece of software. There is no need for specialized hardware or development boards for the students. Simics can be downloaded and installed on the students’ local computers, reducing the load on VPNs to connect back to corporate servers to access the software.  In particular for training, the required software is well-packaged and easy to download and install.

Final Thoughts

Doing a live remote training works, but it is not a perfect substitute for an in-person class. You do not get the same connection with the audience, and as a trainer you cannot sense the attention of the class. You also miss a lot of the informal discussions you get over lunch and before and after classes. 

On the positive side, remote live lets us keep doing training even during mandatory work-from-home times and with people scattered across multiple cities and sites. It is still live, and we still get interactive discussions going. The technical requirements are not overwhelming, and most people should be able to partake in training from home as well as teach it from home.  Technology really works, and it can help us get through these trying times.

Cancer Part 3: So Far So Good

It has been a bit more than six months after my radiotherapy treatment for thyroid cancer, and I feel pretty much normal. Several times over the past few months, I have talked to people I have not seen in a while and they have asked me how I am doing. At first I just say “fine”… and I then realize that they are asking about the cancer. It’s not top-of-mind for me since I have been living with it for almost a year now, and it feels (currently) like it is “done”. Of course, it will be years before I am formally considered to have fully recovered, but right now I feel like I am functioning mostly normally (except a small side-effect from the medication).

Getting Back in Business

My last update was written as I was in isolation after radiotherapy. Following the hospital time, I stayed one night in a hotel to get the radiations down a bit more before going home. Once home, it was just me and my wife for a few days until the kids got home from their fall break. Until two weeks had passed after the radiotherapy, I made sure to sleep in my own room and stay several meters away from all the other family members.

I went back to mostly normal life just in time to give a talk at the Embedded Conference Scandinavia in early November. Guidelines from the hospital were that I could be around people again by then, but preferably only for a short time and keeping some distance. Giving a talk from a stage kept a safe distance for the audience, and I skipped the conference dinner.

At the talk, a friend of mine showed up with a Geiger counter (he works in a company where they use such instruments), and I got an actual measurement of the situation post-therapy. It turned out that while there was a noticeable amount of radiation right at the skin of my throat (which I suppose indicates that the radiotherapy did hit the right spot, but I am not a doctor and cannot know for sure). More importantly, at a distance of about 50cm the radiation level was indistinguishable from the background radiation. That felt pretty good to know, as it did indicate that the risk I posed to other people was rather limited already at that point.

Later in November, I went to India to teach a long-planned Simics training. There was some (theoretical) concern that I might get caught in airport security somewhere due to being radioactive, and I did have a letter with me certifying that I undergone radiotherapy and explaining the situation. However, nothing happened and the trip went off without a hitch.  

Radiotherapy Done

Thus, radiotherapy was “done” after a couple of weeks and life could go back to its normal routine. It is noticeable just how unaffected I was from this treatment. It is highly localized and should not really affect your system much. I basically felt nothing.  The big question was obviously if the therapy had done its job.

Answering that questions comes down to taking blood tests to check for indicators that I should not try to explain. The first tests late in 2019 came up inconclusive, and I stayed on the rather high dose of 175mg of Levaxin per day. Recently, the second test indicated that the process is going in the right direction, and I could lower the Levaxin dose just a little: taking 150mg every second day, which lowers the average just a little to 162.5mg per day.

Levaxin and its Side Effects

That leads on to my last observation about the cancer treatment: taking a high dose of Levaxin has side-effects. Even before the cancer, I was known for my high tempo and high energy. Taking 175mg of Levaxin definitely exacerbated that to the point that it has been a bit tough for the family and close to debilitating for me. It is like having a little rocket push you around and losing a bit of self-control and self-restraint.  

With the Levaxin, I have had a harder time focusing and actually finishing something that I start. It is like my brain is on a slippery surface and kind of skids around, requiring a conscious effort to stay on task. I left a trail of half-done to-do notes for myself in Outlook at work. Sometimes, it felt like being slightly drunk, and unable to stop myself from doing things even if I knew deep inside that it was unnecessary or not a good time. Overall, a slightly disconcerting experience.

One particularly visible aspect of this is that I have had a hard time getting around to writing and finishing blog posts (which is clearly visible in the output on this and my Intel blog). It has been too easy to get distracted with shorter-term tasks and interruptions at work and at home.

However, lowering the dose just a little made a huge difference. I feel much better, like some kind of fog has lifted. I feel calmer and less jittery. I am really looking forward to the next step in lowering the dose. Even 150mg is fairly high, but it seems closer to the level of drive I had naturally before the cancer. Clearly, I won’t do anything until I get instructed by my doctor. Right now, the plan is to try the lower dose for a while, take new tests, and check that nothing creeps back in. The standard procedure as I understand it seems to be to run a high suppressing dose for something like a year after the initial surgery. I will find out this coming Summer I suppose.

Covid-19 Note

This was written and posted in the middle of the Covid-19 pandemic. My personal process with cancer goes on regardless of the much bigger issues in the world, and I wanted to get this update out since I myself got updated rather recently. And the question comes up every so often.

Intel Blog Post: “Quit Thinking and Look” – Mea Culpa Chasing a Performance Bug

I have written before about the debug advice to “Quit thinking and look.” It means that you should not form conclusions prematurely. Stop and look at what is going on instead of guessing and cooking up theoretical scenarios. Sound advice that I completely failed to follow in the case that I just chronicled on my Intel Blog: https://software.intel.com/en-us/blogs/2020/03/18/quit-thinking-and-look-chasing-simics-performance

Continue reading “Intel Blog Post: “Quit Thinking and Look” – Mea Culpa Chasing a Performance Bug”

Intel Blog Post: Shift-Left for a Snowy Ridge

There is a new blog post on the Intel Developer Zone on how we used Simics virtual platforms for the new Intel® Atom® P5900 series of system-on-chip (previously known as Snow Ridge). It talks about how shift-left works both inside of Intel and with our customers for the new chip, and the kinds of virtual platform models you use for different types of use cases.

See https://software.intel.com/en-us/blogs/2020/03/17/seeing-the-early-snow-on-the-ridge

Simulating Computer Architecture with “Mechanistic” Models – No more 100k Slowdown?

I have been working with computer simulation and computer architecture for more than 20 years, and one thing that has been remarkably stable over time is the simulation slowdown inherent in “cycle accurate” computer simulation. Regardless of who I talked to or what they were modeling, the simulators ran at around 100 thousand times slower than the machine being modeled. It even holds true going back to the 1960s! However, there is a variant of simulation that aims to make useful performance predictions while running around 10x faster (or more) – mechanistic models (in particular, the Sniper simulator).

Continue reading “Simulating Computer Architecture with “Mechanistic” Models – No more 100k Slowdown?”

Additional Notes on Spotify

After about a month of using Spotify, it is time for an update. I got several people asking about how I was doing with Spotify, based on my previous blog post about the service. The results so far have honestly surprised me – it has become my default way of listening to music, despite all of my previous criticisms being pretty much validated. I guess the “access any song” is really a compelling value proposition, strong enough to overcome the limited organizational tools.

Continue reading “Additional Notes on Spotify”

The Benefit of Live Teachers (Applied to Myself)

I have been spending quite a bit of time in recent years developing training materials and doing trainings for Simics. There is always a discussion on how best to do training, in particular between live sessions with actual trainers and offline video and other self-study resources. I am a firm believer in the value of live training, and during our recent winter vacation up in the Swedish mountains I made myself provide a perfect example of the value of a teacher. I took a skiing lesson.

Continue reading “The Benefit of Live Teachers (Applied to Myself)”

I Finally Gave up and Tried Spotify

I am probably among the last people to have tried Spotify. When the service first arrived ten years ago I looked at it and concluded it seemed a poor match for my needs. To me, music is something you buy and own permanently in the style of old-fashioned CDs. The whole idea of a streaming service where an artist, album, or song could go missing all of sudden due to factors beyond your control just seemed (and still seems) suspicious. Everybody else seemed to love it, but that does not necessarily mean it is good…  However, I finally did jump in and try Spotify, and here is what I found.

Continue reading “I Finally Gave up and Tried Spotify”

Intel Blog Post: Simulating Caches 10x Faster with Simics

Earlier this year, Arianna Delsante defended her Master’s Thesis in computer science at Uppsala University. Her thesis topic was to speed up cache and branch prediction simulation in Simics, and in the end she got a speed up of about 10x compared to previous implementations in Simics. I explain a bit more about cache simulation in fast functional simulators and what she did in my latest Intel Developer Zone Blog post, “Speeding-Up Cache Simulation in Simics by 10x“.

Continue reading “Intel Blog Post: Simulating Caches 10x Faster with Simics”

“Studying the Advancement in Debugging Practice” / 2016 Paper

I find debugging a very interesting topic of study, so when I stumbled on the paper “Studying the advancement in debugging practice of professional software developers”, I had to do a blog on its contents.

Continue reading ““Studying the Advancement in Debugging Practice” / 2016 Paper”

Cancer Part 2: Going Radioactive

As I chronicled earlier this year (see “A Sudden Case of Cancer”), I got a Thyroid Cancer diagnosis back in May of this year. In June I went through surgery which went very well. After only three weeks, I was sufficiently recovered to travel to Greece and give a keynote presentation at the SAMOS conference. My scar prevented me from taking as much as advantage as I could have of the sun and pool, but it was possible to do at least a little bit of bathing towards the end. Now, I have reached part two of the treatment, radioiodine therapy to knock out any lingering cancer cells. Basically, I am going radioactive for a few days.

Continue reading “Cancer Part 2: Going Radioactive”

Failing to See WiFi Login Page [Captive Portal] / Solved

I have had some annoying problems in recent months with my work laptop refusing to connect to certain WiFi login pages (more technically known as Captive Portals), essentially locking me out of the WiFi in certain places. Here is how I solved it.

Continue reading “Failing to See WiFi Login Page [Captive Portal] / Solved”

More on Programming

My blog post from last week, “Programming for Everyone, Everyone’s a Programmer?,” gave rise to some good comments from friends and colleagues on the matter of programming. Some of the points are worth addressing in a continuation of the discussion.  To get the starting point, please read the previous post first.

Continue reading “More on Programming”

Programming for Everyone, Everyone’s a Programmer?

Recently, I have read some articles and seen product announcements based on the idea that we need to make programming easier. Making it easier is supposed to make more people program, and the underlying assumption is that programming can be easy enough that everyone can do it. I have also talked computer science undergraduate students who kind of asked me just how many years at the university you should do, and what do you actually in practice gain from a university degree in computer science? When I think about it, these two discussions really come down to the same question: Should everyone be a programmer? Can everyone be a programmer? What does it mean to be a programmer? How do you best learn to program?

Continue reading “Programming for Everyone, Everyone’s a Programmer?”

Intel Blog: A Mountain and Threading for Simics 6

A new short blog post on my Intel Developer Zone blog talks about the improved threading simulation core we have added in Simics version 6… and about how a colleague of mine climbed to the top of the highest mountain in Europe and showed a flag with our new Simics icon! Read the story at https://software.intel.com/en-us/blogs/2019/09/10/simics-6-at-the-mountain-top.

Intel Blog: Simics 6 Device Register Coverage

I have a new blog post out on the Intel Developer Zone, about the Simics 6 device register coverage feature. I use device register coverage to look at how different operating systems use the same hardware. The differences are significant, demonstrating the (rather expected) observation that different software stacks use the same hardware in different ways.

Continue reading “Intel Blog: Simics 6 Device Register Coverage”

Excel 2016 & CSV Import – Hilariously Broken

I just started using Office 365 at work, and almost immediately I hit a hilariously bad problem in the core simple “import CSV” functionality. Basically, the Excel 2016 that I got (it is 2016, not the latest 365 that my home machine all use) does not understand Windows line endings or decimal numbers.

Continue reading “Excel 2016 & CSV Import – Hilariously Broken”

Using FPGAs to Simulate old Game Consoles

A while ago, Ars Technica reviewed the Mega Sg, a modern clone of the old Sega Genesis gaming system. I stumbled on this review recently and realized that this is a fascinating piece of hardware. The Mega Sg is produced by a company called Analogue (https://www.analogue.co/), presumably named thus because they create analogues to old gaming consoles. The way this is done is different from most current “revive the old consoles” products that simply use software emulation to run old games. Instead, Analogue seems to have settled on using FPGA (Field-Programmable Gate Array) technology to basically build new hardware that is functionally equivalent to the old console hardware.

Continue reading “Using FPGAs to Simulate old Game Consoles”

Off-Topic: Vacation in Crete

This year’s family vacation was spent on the Greek island of Crete, in an all-inclusive resort close to Chania on the north coast. Overall we got nice weather and an enjoyable pool-and-sun holiday, mostly staying at the hotel with a few excursions. In the following, I will go through some of the most surprising or interesting observations I made in Crete. Greek letters are cool, but I do not think we will go back to Greece any time soon when there are higher-quality places available (such as Spain).

Continue reading “Off-Topic: Vacation in Crete”

SAMOS 2019 – Insights, Mechanisms, Heterogeneity, and more

Earlier in July 2019, I had the honor of presenting one of the keynote talks at the 19th SAMOS (International Conference on Embedded Computer Systems: Architectures, MOdeling, and Simulation) conference, held on the island of Samos in Greece. When I got the invite, I had no real idea what to expect. I asked around a bit and people said it was a good conference with a rather special vibe. I think that is a very good description of the conference: a special vibe. In addition to the usual papers and sessions, there is a strong focus on community and social events, fostering discussion across academic disciplines and between industry and academia. There were many really great discussions in addition to the paper and keynote presentations, and overall it was one of the most interesting conferences I have been to in recent years.

Continue reading “SAMOS 2019 – Insights, Mechanisms, Heterogeneity, and more”

A Sudden Case of Cancer

Cancer – it is a scary thing, and it recently became part of my life. It is only two weeks ago today that I got my cancer diagnosis, and I am already out of surgery and recovering. It has been a very speedy process, and hopefully this will be the end of it. Getting a cancer diagnosis is a bit rattling, but there is no reason to panic.

Continue reading “A Sudden Case of Cancer”

Intel Blog Post: Clear Linux for Simics Demo & Training

For Simics training and demo purposes, we often use Linux* running on the virtual platforms. In the early days of Simics and embedded Linux, we built our own minimal configurations by hand to run on simple target systems. Most recently, we changed our Linux default demo and training setup to use Clear Linux*. This change showed us just how sophisticated modern Linux setups are – which is good in general, but it also can make some low-level details more complicated.

I wrote an Intel Developer Zone Blog Post about our experience moving to Clear Linux for Simics demos and training, which contains a lot more details of what we observed and did to make this work for our purposes.

DAC 2019 – Cloud, a Book, an Award, and More

Last week was spent at the Design Automation Conference (DAC) in Las Vegas. I had a presentation and poster in the Designer/IP track about Clouds, Containers, and Virtual Platforms , and worked in the Intel Simulation Solutions booth at the show floor. The DAC was good as always, meeting many old friends in the industry as well as checking out the latest trends in EDA (hint: same trends as everywhere else).  One particularly nice surprise was a book (the printed type, not the Vegas “book” that means something else entirely).

Continue reading “DAC 2019 – Cloud, a Book, an Award, and More”

DOOM Black Book – This is Brilliant!

Book cover

I heard about the DOOM Game Engine Black Book by Fabien Sanglard on the Hanselminutes podcast episode 666, and immediately ordered the book. It was a riveting read – at least for someone who likes technology and computer history like I do. The book walks through how the ID Software classic DOOM game from 1993 works and the tricks and techniques used to get sufficient performance out of the hardware of 1993. As background to how the software was written, the book contains a great description of the hardware design of IBM-compatible PCs, gaming consoles, and NeXT machines circa 1992-1994. It covers software design, game design, marketing, and how ID Software worked.

Continue reading “DOOM Black Book – This is Brilliant!”

Intel Blog Post: Simics in the DARPA Cyber Grand Challenge

The US Defense Advanced Projects Agency (DARPA) ran a “Cyber Grand Challenge” in 2016, where automated cyber-attack and cyber-defense systems were pitted against each other to drive progress in autonomous cyber-security. The competition was run on physical computers (obviously), but Simics was used in a parallel flow to check that competitors’ programs were not trying to undermine the infrastructure of the competition rather than compete fairly inside the rules of the competition.

Continue reading “Intel Blog Post: Simics in the DARPA Cyber Grand Challenge”