1. Three years of system calls table

    Porting software often involves system calls. Usually their numbers differ between architectures. Some calls are missing, some are specific to platform. Normal stuff.

    I knew that, you knew that, someone other knew. Or not. But looking into kernel/libc headers each time was boring so I created syscalls table for it. It was small project for personal use.

    One day Arnd Bergmann sent me set of patches which rewrote table generation. From few architectures to which I had access (so could run binary) to every arch supported in Linux kernel. Then some architectures got dropped from kernel. But I kept their data in case someone needs (just moved it to the far right side).

    Webpage look changed during those years. From ugly HTML table to table using DataTables framework. With plugins adding rows colouring, search option and few other tricks.

    And several funny moments happened related to this table. At FOSDEM 2018 I visited Valgrind devroom and was greeted with “Ah, so you are that syscalls guy!” as it turned out that page was a great help. One of my friends was porting his lowlevel software from x86-64 to aarch64 one day and asked me “man, why there is no open() syscall on aarch64?”. Etc. etc.

    I do not remember when last time used it for something. Keeping it updated every rc1 kernel release so anyone can see actual state. I know that people use it cause from time to time someone mentions it or gets directed to it.

    Written by Marcin Juszkiewicz on
  2. Twelve years of remote work

    Twelve years ago I stopped writing PHP code at work. And moved to paid embedded consultant role. Remote paid embedded consultant role even. And never moved to office since. Companies paying for my work were changing, flats/cities were changing, desks too.

    People ask me how it is to work remote at each conference I attend. Often say that they could not work because of a company they work for or because they do not feel that it would fit them. Usually it comes to distractions, being at home etc.

    So what you may need for remote work? It can differ. For me there are several requirements:

    • task oriented job
    • desk
    • comfortable chair
    • good monitor(s)
    • input devices
    • quiet environment
    • coffee machine access

    Job requirements

    First of all being remotee does not work when company does not allow to be out of office whole time. All those offers with “we allow one day per week to be remote” are a joke. It shows that company tries to follow trend but is not ready for it yet. In such cases most of the discussions are during physical meetings (so without remotees).

    Work hours

    Other thing is work hours. The first company I did remote work for was OpenedHand from UK. We had three time zones in use every day: UK, Europe, Finland. Which mean that if I start work between 8:00 and 10:00 then it is fine. But that is also common in non-remote work too. There I usually kept same/similar work hours that office guys did.

    When I moved to work for other foreign companies (Red Hat Polska sp. z o.o. is Polish company but we can ignore that here) time difference usually got added.

    Task oriented job

    Time zone differences mean you can not keep same work hours as office. This is where task oriented job starts. You need to know what you have to do and when deadline is. And do that in time which fits you best.

    This allows to take your child to a doctor or cinema during office work hours and spend other part of day on tasks.

    If you bill by hours then some tool to mark hours/quarters you worked for customer is good to have.

    With such kind of work come reports. Depends on company it can be weekly emails, jira cards, bugtracker issues etc.

    I remember working for Vernier company where we had nine hours time difference. First we spent few hours on discussions what we need to do, how we split work into tasks. Then each day started with mail, ‘git svn pull’, changes, builds, commits, rebases and at the end of my day ‘git svn dcommit’. And email with list of done things, what needs work on their side, patches for review and plans for next day. This gave us 16 hours long developer days.

    Free days

    Depends on your contract you may or may not have days off available. If you have tasks to do then you can travel and work at your destination, right? I often took my daughter to my mother in a way that they were going to a beach or something while I was working.

    Self discipline

    This is where many of people give up. Not being in an office means you can do whatever because no one will notice, right? Yes and no at same time.

    Wasting time

    From one side it helps you waste time on whatever you want. But once you start piling not done work someone will notice. And you may have discussion with manager or lose contract.

    When I worked on OpenEmbedded it was often “do some changes and have few hours of time due to build taking place”. Upgrading machine helped (or having remote access to powerful builders). Now my builds do not take so much time :D

    This was also a time when to learn something, clean a flat, do laundry or even watch some TV series episode.

    Health

    Make sure that you have proper desk and chair. Read safety regulations and choose wisely.

    Select good input devices. I use Microsoft Ergonomic Desktop 4000 keyboard and A4Tech Bloody ZL5 Sniper mouse. Huge mousepad helps (I use 35x45cm one).

    Go for two/three monitors (same model if possible). Or one ultrawide (3440x1440 is nice). Mount them on arm to have space under them available.

    RSI and other issues

    Repetitive strain injury is something I would not wish even to enemies. Here is where combination of desk/chair/keyboard/mouse helps.

    Do breaks during work — I use RSIbreak application to force me to do them. 20 seconds every ten minutes and 60 seconds every hour. Enough to look at something other than display (short ones) or walk a bit (make coffee, grab a fruit).

    If you feel pain in your back do something about it. Massage helps. Pay a specialist to do it. And then repeat from time to time.

    Check your sight yearly if glasses/lenses or bi-yearly if not.

    Would I go back to an office?

    No. Got used to work in environment that I control. Where I can choose if I want silence or some music. Where I meet other people when/if needed.

    From sprint experiences I know that two-three days of work with some other folks exhausts me. Then I required headphones for the rest of week and a place to sit and work without interruptions.

    Written by Marcin Juszkiewicz on
  3. Upgraded system on my server

    My current server is few years old. And now runs plain Debian.

    Beginning

    I started using that server during my work at Canonical. So it got Ubuntu installed. According to OVH panel it was 13.04 release. Then 13.10, 14.04 and finally 16.04 landed. In pain. Took me two days to get it working again (mail issues).

    At that time I decided that it will not get any Ubuntu update. The plan was to upgrade to proper Debian release. And Buster will get frozen soon…

    One day I took a list of installed packages and started “ubuntu:xenial” container. Test shown will it be big work to do such upgrade. Turned out that not that much.

    Today I saw a post saying that php 7.1 goes into “security fixes only” mode. And I had 7.0 in use… So decided that ok, this is the time.

    Let’s go with upgrade

    Logged in, added Debian repository, APT keys and started with installation of 4.19 kernel. And rebooted to it.

    Machine started without issues so I started upgrade. Used aptitude as usual. There were 10-20 conflicts to solve and then package installation started.

    Few file conflicts was on a way but APT handled most of them without issues. Two or free packages I had to take care by hand.

    Next step was replacing remaining Ubuntu packages with Debian ones. Or removing them completely. Easy, smooth work.

    Getting services running

    After copying php-fpm config files from 7.0 to 7.3 release my blog went online.

    Then some edits to Courier auth daemon config files (adding “marker”) and mails started flowing in both directions. But if you got mail that my mail account was not found on a server then send it again.

    Finally reboot. To make sure that everything works. Fingers crossed, “reboot”. Came back online like always. No issues.

    Why Debian?

    Someone may ask why not Fedora or RHEL or CentOS? I work at Red Hat now, right?

    Yes, I do. But Debian is operating system I know most. It’s tools etc. Also upgrade was possible to do online. Otherwise I would have to start with reinstalation.

    Now I have only one machine running Ubuntu. My wife’s laptop. But it is “no way” zone. It works for her and we have an agreement that I do not touch it. Unless requested.

    Written by Marcin Juszkiewicz on
  4. Commodore: The Final Years book

    About year ago friend convinced me to buy “Commodore: The Amiga Years” book by Brian Bagnall. It described how Commodore company looked right after Jack Tramiel left. Buying Amiga company, release of Amiga 1000 and then A500 and A2000 times.

    In April I backed another project by Brian Bagnall: “Commodore The Final Years” book. This one describes 1987 - 1994 period. From A500/2000 releases to company end.

    There were many stories written/told about Commodore company. People saying that Ali Mehdi was main reason it collapsed and other theories. Brian Bagnall’s book gives better explanation than any story I have read before.

    So why C= ended?

    For me this is wrong question. I would rather ask “How C= managed to survive so long?”…

    It looked like a mix of terrible management with good engineers. All those people working on whatever they want to design. And then moved between projects. With complete lack of deadlines (at least sensible ones).

    All those crazy machines

    For example Commodore 64D… It was an idea of adding 1581 disk drive into C64 case. Side effect? C64 users buying 1581 disk drives (because software released on 3.5” floppies) and C64D people buying 1541 to get access to older releases on 5.25” floppies.

    Or whole work on Commodore 65… Wet dream of some of my retro friends. 8bit machine with superior capabilities (compared to C64/C128/C+4) but several years too late. Huge amount of work hours spent on designing 4502 CPU, VIC-III and other chips, prototype boards, operating system, new BASIC

    Then Amiga 300 (released as A600) which got any expansion possibilities removed. Only to not give a chance for GVP to earn money on extensions. I used that model. Was terrible but allowed me to have hard drive so I bought it instead of A500+.

    All that work done on AAA chipset. Which was far beyond everything when they started but then quickly became not-so-magical when PC market got SVGA cards, PCI slots…

    Company related stories

    Book is not only how many computer models were on designers’ tables. There are many stories related to the company, people working there. How Commodore interacted with communities etc. How people worked in 80s/90s. Internet/UUCP use in those years. Hobbies of Commodore employees and lot more.

    Impact on technology market

    Some readers may remember CDTV model. It was Amiga 500(+) with CD-ROM drive all put in HiFi like case. But not so many knows about CDTV-CR one. It was cost reduced version based on A600. And much cheaper CD-ROM drive based on some cheap ‘diskman’ like one with electronics done from scratch. According to the book it’s creation lowered prices of CD-ROM drives for the whole industry.

    Conclusion

    For me this book (and previous one) are must read for any Amiga fan. Lot of interesting details about released (and not released) models, accessories, some notes about software. Many stories from Commodore employees and people cooperating with C= company through years.

    My Amiga story

    I was Amiga user in 1995 - 1999 years. First Amiga 600 with 425MB hard drive and 2MB ram. Then A1200 which I moved to PC tower case. At the end it had 68040 cpu at 40MHz, 64MB ram and 17GB hard drive (connected to FastATA controller). AmigaOS was nice, I learnt a lot but hardware became slow so I sold it in 1999 and moved to PC running Debian.

    Written by Marcin Juszkiewicz on
  5. Thunderbird sucks

    Mutt website says: “All mail clients suck. This one sucks less.” Then Mutt-NG adds “Mutt sucks less - but it still sucks!”. And this is true. Thunderbird definitely sucks. But I still use it.

    I have three email accounts: private one (own server, Dovecot + Postfix) and two work ones on Gmail. And 240GB SSD for /home partition so from time to time I have to clean something. This time it was ~/.thunderbird/ taking about 48GB

    But 48 is still better than 100GB it took in past. Still far too much. So let’s check why it takes so much.

    The biggest folder had 57900 files (1.8GB total). Thunderbird said it has 1801 messages, 48.9MB in total. Each message stored over THIRTY times. Maildir format, Gmail account.

    Went to another folder. 823MB in 77345 files on disk. Thunderbird said 3107 messages, 30.7MB in total. Maildir format again, same Gmail account.

    Ok, let’s check Dovecot one. Turns out that this one is mbox based. The biggest one was 2.1GB on disk, 526MB according to Thunderbird.

    For each of them, I went with “repair folder” button which is “drop whatever is on disk and fetch again from server”.

    And then went through folders and disk usage went to even 14GB. But now it started to fetch everything so time will show how it ends.

    Bug reported. Do not care much will it get solved or ignored.

    Alternatives?

    Evolution was worse than Thunderbird when I tried to use it one-two years ago. Do not remember details now.

    KMail is not usable due to lack of OAuth support for SMTP. There was code written for it but it is not available in Fedora yet.

    Written by Marcin Juszkiewicz on
  6. Where and when mistake was made?

    I am tired of useless discussions. Tired of “we are talking about servers and desktop, not toys” which needs to happen in EVERY arm64 discussion sooner or later. It was that way in “Qt: GL or GLES on arm64” thread on debian-arm ML or recently on #debian-boot when I tried to find out how to get graphical installer working on arm64.

    There was a mistake done at some point probably. Maybe aarch64 should start with A72 cores, GICv3 and multicore server chips. And mobile market get fast v7 cores at same time. To make a clean split.

    On arm64 Fedora has graphical installer for last few releases. Took a while to debug X11 and kernel to find out why it requires config file when it should not. We wrote some patches (better than ones in linked post) and got them merged. I can take Mustang, put graphics card and install operating system using keyboard, mouse and monitor. Just like it is on boring computers.

    Debian? Same machine, same config — you need to grab serial cable and second computer. Because it is Arm system so it is supposed to be one of those small toy boards people give to kids to play with, right?

    Sure, I could sit and discuss with people but it does not work. You always get someone with ‘I use R/Pi zero as a desktop’ (or other insane setup) and then thread dies as every normal person leaves.

    So sorry, but I do not plan to spent any time on improving operating system installers. Never mind which distribution it will be.

    Written by Marcin Juszkiewicz on
  7. AArch64 on AWS

    I woke up today, looked into news stream on my phone and bang! Amazon announced Arm systems being available in AWS. Nice!

    Red Hat Enterprise Linux 7.6 is one of operating systems available from day one. Boots, runs and all the boring things you expect from operating system. It is nice to see new systems run RHEL out of the box.

    So, what to do with such EC2 instance? I know that some people plan to move their x86-64 based cloud infrastructure to aarch64. Several projects will add them into their pool of AWS instances to have another architecture available in their CI systems. Lot of people will run one just to check how it differ from their daily x86-64 systems.

    As those are not bare metal systems you are not able to run OpenStack or play with virtualization but if you are using containers (Kubernetes on Arm anyone?) then it probably can be something to play with.

    Written by Marcin Juszkiewicz on
  8. Red Hat Platform Enablement meeting week

    Last week I was in Vancouver, Canada again. At the time when Linux Plumbers conference took place. But it was not the main reason as I went there to meet people from Platform Enablement team at Red Hat.

    Linux Plumbers

    The idea was simple — gather everyone in one place at same time and let them talk. Conference was selected to give something else to do at same time. And we were visible — for 473 attendees about 60 was from Red Hat.

    Red Hat team before going for team dinner
    Red Hat team before going for team dinner

    I was talking with most of RH people to find out who they are, what they are working on etc. It ended in a lot of interesting discussions. Also many talks with non-RH people. The ‘so you are IBM now’ phrase happened just a few times.

    There were funny moments too. Like one when Dave Airlie responded with “ah, you are the ‘arm64 + radeon guy’” ;D

    Vancouver

    As there was no breakfast option in ‘The Burrard’ hotel I went for a walk to find some. Davie street is full of bars, diners, restaurants (but most of them open at 11:00). Interesting graffiti, cannabis stores (as it is now legal in Canada) and lot of LGBT rainbows everywhere.

    Band graffiti
    Band graffiti
    Some "Safe space" monument
    Some “Safe space” monument
    Tanning salon
    Tanning salon
    Cannabis Store
    Cannabis Store
    Fountain
    Fountain
    Shore
    Shore
    A-maze-ing Laughter
    A-maze-ing Laughter

    Toronto

    Due to one of my flights being cancelled I had to choose: weekend in Vancouver, weekend in Toronto or rebooking whole trip. So I decided to go to Toronto and meet friend there.

    On Saturday I meet Karol and we had long walk. It was good to not discuss about ARM or OpenStack — we went for visual effects instead as this is Karol’s area of expertise. Maya, Houdini, Renderman, Mr. X, ILM, Pixar and other names were going over. I was told “they work on Houdini in that building” and later “here Maya is developed” ;D

    So I asked about photo realistic movies — are they possible now? Turns out that yes, they are. But it is too expensive to make.

    During weekend I did over 20 kilometers by just walking through the city. Some random photos below:

    Thimble monument
    Thimble monument
    Pink Panther graffiti
    Pink Panther graffiti
    Dog graffiti
    Dog graffiti
    Rabbits graffiti
    Rabbits graffiti
    Leslieville graffiti
    Leslieville graffiti
    Together sidewalk graffiti
    Together sidewalk graffiti
    Halloween decorations
    Halloween decorations
    Small house between bigger ones
    Small house between bigger ones
    TORONTO city sign with buildings
    TORONTO city sign with buildings
    TORONTO city sign
    TORONTO city sign
    Me and TORONTO city sign
    Me and TORONTO city sign

    It was great week. Despite sleep deprivation ;D

    Written by Marcin Juszkiewicz on
Page 12 / 105