X-wing squads

Links: X-Wing Wiki , My Pilot Browser

I will post (rebel/resistance) X-wing squads I have played here.

** Big Nien Numb Squad ** (100)
1x T70 X-Wing Nien Numb (29), Push the Limit (3), R3-A2 (2)
2x A-Wing Prototype Pilot (17), Chardaan Refit (-2)
3x Z-95 Bandit Squadron Pilot (12)

This worked very well. Nien Numb is good at handling out stress. I tried to replace Nien Numb with Wedge Antilles but was less lucky. The idea is to have a large squad with some edge. For 34p there are many options to replace Nien Numb.

** Angry Chewbacca ** (100)
1x YT-1300 Chewbacca (42), Recon Specialist (3), Jan Ors (2), Millenium Falcon (1), Push the Limit (3)
2x B-Wing Blue Squadron Pilot (22), Fire Control System (2)

This is the new (Hereos of the Resistance) Chewbacca, but the old Millenium Falcon. The idea is that Chewbacca can make green maneuvers, Push the Limit and get 2xFocus + 1xEvade, or 1xFocus + 2xEvade every round. When the B-wings die Chewbacca gets a bonus shot. First time I used this squad I had 4xZ95 instead of B-wings, but they were not enough of a threat to keep the fire away from Chewbacca (and you dont want Millenium Falcon left in the end).

** Very Aggressive B-wings ** (99)
1x B-wing Keyan Farlander (29), Fire Control System (2), Expose (4), Experimental Interface (3)
1x B-wing Nera Dantels (26)
 Fire Control System (2), Proton Torpedo (4), Extra Munitions (2), Guidance Chip (0), Trick Shot (0)
1x X-wing Biggs Darklighter (25), Integrated Astromech (0), R3 Astromech (2)

Keyan Farlander can use Experimental Interface to be stressed and Exposed, and then use his stress as a focus. Thanks to Biggs, enemy can’t fire at Keyan. Nera is a royal pain (save your torpedoes until you have nobody in your primary firing arc). Admittedly I flew this squad with the R4-D6 astromech, which sucked, because it does not cancel criticals, and did not help Biggs at all.

** Wedge and his crack team ** (100)
1x X-wing Wedge Antilles (29), Integrated Astromech (0), BB-8 (2), Adaptability (0)
1x A-wing Tycho Celchu (26), Chardaan Refit (-2), A-Wing Test Pilot (0), Push the Limit (3), Wired (1)
1x A-wing Jake Farrell (24), Chardaan Refit (-2), A-Wing Test Pilot (0), Adaptability (0), Trick Shot (0)
1x Z95 Airen Cracken (19)

I got this squad from my oppenent who wanted me to fly a good Wedge squad. The core idea is that 4 ships with 8 skill is very powerful in itself. And Airen helping Wedge to get two actions make Wedge a very hard hitter. While I like the idea, Wedge is not that good for the price and I would have wanted Push the Limit on Jake also.

** An odd squad ** (97+)
1x ARC-170 Braylen Stramm (25), Alliance Overhaul (0), Tactician (2), R3-A2 (2)
1x T70 X-Wing Jess Pava (25), Integrated Astromech (0), R2 Astromech (1), Pattern Analyzer (2)
2x A-wing Green Squadron (19)
 Chardaan Refit (-2), A-Wing Test Pilot (0), Push the Limit (3), Trick Shot (0)

Four competent ships, all with the same skill (3) allowing them to move and shoot in any order. Jess leads the way, the others staying within range 1, maximizing his special ability. At 97 points, there is room to replace Jess’s R2 and/or Trick Shot with something else. Braylen can deliver 1-2 stress which is a powerful and flexible weapon.

** Acrobatic X-wings ** (100)
1x T70 X-wing Ello Asty (30)
 Integrated Astromech (0), R2 Astromech (1), Push the Limit (3), Primed Thrusters (1)
1x T70 X-wing Snap Wexley (28), Integrated Astromech (0), Targeting Astromech (2),
 Pattern Analyzer (2), Proton Torpedoes (4), Adaptability (0)
1x T70 X-wing Blue Ace (27), Integrated Astromech (0), BB-8 (2)

These three X-wings are all capable of moving in very acrobatic ways, and still come out with focus and/or target lock.

** Alpha Strike ** (100)
1x A-wing Tycho Celchu (26), A-wing test pilot (0),
 Concussion Missiles (4), Push the Limit (3), Swarm Tactics (2), Guidance Chip (0)
1x Z-95 Airen Cracken (19), Concussion Missiles (4), Push The Limit (3), Guidance Chip (0)
1x Z-95 Lieutenant Blount (17), Assault Missiles (5), Guidance Chip (0), Veteran Instincts (2)
1x Z-95 Bandit Squadron Pilot (12), Concussion Missiles (4), Guidance Chip (0)

Tycho, Airen and Bandit should all shot with Target Lock+Focus at skill 8. Blount has no focus, but he cant miss. I lost with this squad but it was a funny game. In hindsight I would have been better off with Ion Pulse Missiles on Lieutenant Blount.

** Big Bad Boys ** (100)
1x YT-1300 Chewbacca (42), Millenium Falcon (1), Jan Ors (2), Kyle Katarn (3), Push the Limit (3)
1x YT-2400 Leebo (34), Outrider (5), Recon Specialist (3), Trick Shot (0)

This is the old Chewbacca and the old Millenium Falcon. You can typically get focus+evade on both ships every round. Chewbacca can even get 2 evade plus focus or target lock. My idea is to fly defensively, constantly making green maneuvers with Chewbacca, and you will make damage anyway. Your problem can be that your enemy will do everything to kill Leebo first and stay close enough to him to avoid his laser. It could be better to replace Heavy Laser Cannon with Mangler Cannon and add Stealth Device or a 3p Elite.

Sort strings without case sensitivity

In JavaScript, I wanted to sort arrays of strings without caring about case. It was more complicated than I first thought.

The background is that I presents lists like this in a GUI:

  • AMD
  • Apple
  • Gigabyte
  • IBM
  • Intel
  • Microsoft
  • MSI
  • Nokia
  • Samsung
  • Sony

The want AMD and MSI (spelled in all caps) to be sorted without respect to case. Standard sort() would put MSI before Microsoft.

Obviously I am not the first one wanting to do this and I found an article on stackoverflow. It suggests the following solution:

Use toLowerCase()
You can make your own string compare function that uses toLowerCase and send it as an argument to sort():

function cmpCaseless(a,b) {
    a = a.toLowerCase();
    b = b.toLowerCase();
    if ( a < b ) return -1;
    if ( a > b ) return  1;
    return 0;
}

myStringArray.sort(cmpCaseless);

This has a number of problems. The article above mentions that it is not stable. That is probably true in some cases but I was of course worried about performance: making two String objects for each compare should make the garbage collector quite busy, not to mention the waste of copying and lowercasing potentially quite long stings when usually the first character is enought. When I started experimenting I found another more critical flaw though: in Swedish we have three extra characters in the alphabet; Å,Ä,Ö, in that order. The above cmpCaseless orders Ä,Å,Ö, which sounds like a little problem, but it is simply unacceptable.

Use localeCompare
There is a more competent (or so I thought, read on) way to compare strings in JavaScript: the localeCompare function. This one simply treats A,Å,Ä and O,Ö as the same character, which is far more unacceptable than the toLowerCase problem.

However, it also has a “locales” option (a second optional argument). If I set it to ‘sv’ I get the sort order that I want, but performance is horrible. And I still have to use toLowerCase as well as localeCompare:

function localeCompare(a,b) {
    return a.toLowerCase().localeCompare(b.toLowerCase());
}

function localeCompare_sv(a,b) {
    return a.toLowerCase().localeCompare(b.toLowerCase(), 'sv');
}

localeCompare() has an extra options argument with a “sensitivity” parameter, but it is no good for our purpuses.

Rolling my own
Of course, I ended up building my own function to do caseless string compare. The strategy is to compare one character at a time, not making any new String objects, and fallback to localeCompare if both characters are above the 127 ASCII characters:

function custom(a,b) {
    var i, al, bl, l;
    var ac, bc;
    al = a.length;
    bl = b.length;
    l = al < bl ? al : bl;
        
    for ( i=0 ; i<l ; i++ ) {
        ac = a.codePointAt(i);  // or charCodeAt() for better compability
        bc = b.codePointAt(i);
        if ( 64 < ac && ac < 91 ) ac += 32;
        if ( 64 < bc && bc < 91 ) bc += 32;
        if ( ac !== bc ) { 
            if ( 127 < ac && 127 < bc ) {
                ac = a.substr(i,1).toLowerCase();
                bc = b.substr(i,1).toLowerCase();
                if ( ac !== bc ) return ac.localeCompare(bc);
            } else {
                return ac-bc;
            }
        }
    }
    return al-bl;
}

One fascinating thing is that here I can use localeCompare() without 'sv'.

Test for yourself
I built a simple webpage where you can test everything yourself.

Conclusion
Defining a string sort order is not trivial, when you dont just have ASCII characters. If you look at the ascii table you see that non alphabetic characters are spread out:

  • SPACE, #, 1-9, and many more come before both A-Z and a-z
  • Underscore: _, and a few other characters come after A-Z but before a-z
  • Pipe: | and a few other characters come after A-Z and a-z

When it comes to characters behind ASCII 127, it just gets more complicated: how do you sort european language latin letters, greek letters and arrows and other symbols?

For this reason, I think it makes sense to define your own sorting function and clearly define the behaviour for the characters you know that you care about. If it really matters in your application.

My function above is significantly faster than the options.

Disclaimer
These results can probably be inconsistent over different web browsers.

Node.js 6 and 7 on OpenWRT

I have previously built and distributed Node.js 4 for OpenWRT. I have lately made some little attempts with Node.js version 6 and 7 for brcm-2709 (Raspberry Pi ARMv7). It is not going well: there are missing dependencies in the OpenWRT toolchain (for v7: execinfo.h, perhaps more).

If anyone is interested in sharing efforts feel free to comment below.

For now, I suggest the version 4 binaries. Node.js and OpenWRT will never be a perfect match since a lot of OpenWRT targets lack FPU which JavaScript heavily depends on.

Märklin Z steam locomotives

I have a Märklin Z model railroad layout and I have found Ebay a good place to buy locomotives. Märklin has a limited number of models available brand new, and the line changes every year. For different reasons you might want to buy a locomotive that is not available from Märklin this year. This is quite fine because the locomotives last very long (if not mistreated), old models are even available (on Ebay) brand new, and since they are small shipping is trivial and cheap.

However, when I was browsing available items on Ebay I got confused after a while! What was that model I liked? What item number did it have? Are there other item numbers that look the same? That made me put together a simple list and I used my Märklin catalogues from 1996-2016 (I have about half of them) as information source. I have limited myself to steam locomotives and Z scale.

Märklin manufacturing and tooling
When Märklin wants to offer a new model they invest in tooling for it. That obviously cost money. They then use that tooling to produce different versions of that locomotive for a shorter or longer period of time. Typically a standard (black BR/DR/DRG) version made available for several years. Then there are special versions (Insider members only, anniversary editions, or other company versions: Baden, Prussia, Bavaria and so on) available just a year or two. Finally, the tooling is retired, and the model is withdrawn unless new tooling is developed.

My List
My list is based on locomotive types. Look at the DRG 18.1: it has been available as different Märklin items for BR and Bavaria (as S3/6) for most of the time. During a few years, there was also a Wurtenburg edition (88180).

Model numbers prefixed with S are Start sets (coming with transformer, tracks and wagons).
Model numbers prefixed with T are Train sets (coming with matching wagons).

Disclaimers
I am confused with this BR/DR/DRG thing! I understand the German national railway company has had different names over the 20th century, but Märklin is not using BR/DR/DRG consistently over the years for the same models, so my list is also a mess. I am thinking about just writing BR or “German Black” everywhere. Feel free to suggest how to deal with this!

I have not had access to every catalogue since 1996, so there are definitely items missing.

Some models have been coming and going over the years. If my list says 1998-2016 it does not mean the model was available every single year. It just means that during the period of time this locomotive model was available as different Märklin items (many of them just a single year). Märklin had some bad years when they went bancrupt, the Z scale was rumoured to be eliminiated, production was moved to China, and eventually it was moved back again. These years very few items were available.

The purpose of the list is not to follow individual item numbers (when they were introduced and discontinued) but rather to show what steam locomotives have been made available as a Märklin Z item, the time it was available, and relevant item numbers.

Model Wheels Arrangement Available Märklin Items
Passenger tender
BR 001 4-6-2+8 2012 88010
BR 003 4-6-2+8 1994-2012 8885 88851 88852 88854 88855
DR 03.10 4-6-2+8 1994-1998 8886 8890 88861
BR 10 4-6-2+8 1994-2006 8889 8888 88892 88893
DRG 18.1
S 3/6 Bav
Wurt
4-6-2+8 1996-2016
1994-2016
1996-2000
88181 88183 88184 T:81426
8892 88921 88923 S:81781
88180
DRG 18.4 4-6-2+8 1994-1998 2003 T:8833 T:8108 T:81331
BR 24 2-6-0+6 1994-2012 8803 88030 S:81560
BR 38
P8 Baden
4-6-0+6 1994-2002
2000 2010-2011
8899 88991
88999 T:81420
BR 39
P10 Prus
2-8-2+8 2005-2006 2012
2003 2007
88090 88092 T:81362
88091 88093
Freight tender
BR 41 2-8-2+8 1994-2012 8827 88271 88274 S:81780 T:81361
DB 042 4-6-2+8 2006 88272
BR 42.90 2-10-0+8 2003-2006 88040 88041
BR 44 2-10-0+8 2010-2012 88972 88973
BR 50 2-10-0+8 1994-2016 8884 8154 88841 88842 88843 S:81863 S:81864
BR 52 2-10-0+8 1998-2016 8883 88830 88831 88836
DGR 53.0 0-6-8-0+6-4 2007 88053
DB 55.25
G 8.1 Prus
0-8-0+6 1998-2000 2014
1998-2002
88980 88984
88981 88982
DB 58
G 12 Prus
G 12 Wurt
G 12 Baden
0-10-0+6 2005-2010
2006
2006
2010-2011
88121 88123
88122
88120
88124
Passenger tank
BR 61 4-6-4 2010-2011 88610
DRG 64 2-6-2 2016 88740 88741
BR 74
T 9 Wurt
2-6-0 1994-2016
2005-2006
8895 88951 88593 S:8158 S:81562
88952
BR 78 4-6-4 1994-2012 8806 88062 T:81191
T 18 Prus
T 18 Wurt
4-6-4 1994
1998-2000
T:8119
88061
Freight tank
BR 80 0-6-0 2016 81352
BR 85 2-10-2 2002-2006 88885 88886 88887
BR 86 2-8-2 1994-2012 8896 88961 T:81001
BR 89 0-6-0 1994-2016 8805 88051 S:8150 S:8180 S:81520 S:81521 S:81522 S:88569 T:8138
DRG 94
T 16.1 Prus
0-10-0 2010-2012
2010-2012
88942 88943
88941
DRG 96 0-8-8-0 2005-2016 88290 88291 88294
USA
Mogul 2-6-0+8 2005-2006 88035
Mikado 2-8-2+8 1994-2012 8807 S:81461 S:81466 S:81830 T:88812
Pacific 4-6-2+8 1994-2006 8810 T:8881 T:8882 T:88811 S:81530
Belgium
81 (BR55) 0-8-0+6 2002 88983
96 (BR74) 2-6-0 2016 88964
France
SNCF 130 (BR74) 2-6-0 2016 88956
SNCF 150 2-10-0+8 1998 88833
SNCF 232 4-6-4 2003-2005 88063
Switzerland
A3/5 4-6-0+6 2005-2007 88992 T:81035

Please comment below if you want this list to be corrected!

X-Wing Miniatures: An introduction

I have been playing X-Wing Miniatures for about a year. I think it is a very good game and I will share some findings, particularly with new players.

I have exclusively played the Rebel (and Resistance) side and I have only played causual games, no tournaments.

What to buy first
I have the same boring advice as everyone else: after your first Core set (the blue Force Awakens box), get a second starter set (the Original core set).

You want 6+6 dice, thus the second start set is good value.

Only if you already have friends that own the game and you just want a squad, and you want to build the strongest possible squad for as little money as possible perhaps you should not get a second (or even a first) core set.

Winning
Winning X-wing comes down to a few key factors:

  1. Flying well
  2. Some luck with dice
  3. A good squad

The dice luck is a good thing because it keeps the game interesting until the end!

When it comes to flying well and building a good squad I have some bad news: it is more about avoiding mistakes than to be brilliant! Bad decisions decide the outcome of the game much more often than good decisions.

If you are fighting a decently good opponent this is what will make you lose:

  • Flying off the board: lose your ship immediately.
  • Flying into asteroids (obstacles): you may get damage, you lose an action, and in worst case you even lose an attack. There are (rare) occations when running through an asteroid is a winner, but most of the time it happens by mistake and its a bad thing.
  • Flying into yourself: (blocking yourself) losing an action – if you occationally do it intentionally for a good reason – fine, but by mistake or because you have no option – not good.
  • Not flying as one squad: see below.

What it comes down to is that both squads are equally strong from the beginning. If you make the above mistakes you lose actions and shots and your ships die faster.

Squad Strength
You typically pay 100 points for your squad. You pay for:

  • Upgrade cards
  • Good maneuver dials
  • Special pilot abilites
  • Pilot skill (moving-after-shooting-first-advantage)
  • Actions (all ships have Focus, but you pay extra for Boost, Evade and Barrel roll)

This is all good! But at a fundamental level your squad has

  • a total number of attack dice per round,
  • a total of Hull + Shields (and Evade dice).

If your squad has more attack dice and can take more damage than your opponents’ squad, that is a good start! A player can of course try to compensate for lack of firepower and hull with upgrades, skills and maneuvers: but that makes the squad more sensitive to mistakes.

Also with squad building, it is much easier to make a mistake than to do something brilliant. Bad squad economy:

  • A ship with too many upgrades: some upgrades may be underutilized and when the ship dies they are all lost. Worst of all, unused torpedoes, missiles and bombs (these points are entirely wasted)
  • Multi-ship-combos: double point of failure means that if any ship goes down all ability/upgrade is lost. There are of course good combos, but if you don’t get time to use it until one ship is destroyed, it is bad economy.

There are a few other things that can make your squad very weak against very defensive opponents (like highly skilled Tie Interceptors with autothrusters).

  • Weak firepower: attack value of 3 is much better than 2 against ships that are hard to hit.
  • Poor meneuverability: Y-wings in particular may get very few (forward) shots in a dog fight.

The ironic thing here is that 2 attack dice is very fine against enemy ships with many shields and much hull. It is against ships with Evade + 3 Agility Dice + defensive upgrades (Autothrusters) (and no shields and little hull) that you really need high firepower to do any damage at all.

Flying as one squad
It is critical to fly your squad in a way that your ships support each other.

You and your opponent both have 100p. If you split your squad 50-50, and half the squad is engaging while the other half is not, you fight a 50 vs 100 battle. You will typically lose your 50p while your opponent keeps most of his 100p. So your remaining 50p will face 75p and you lose again. It does not mean that you should, or need to, fly all your ships in tight formation, but

  • If all your squad can take out isolated enemy ship, do it
  • If one or two of your ships gets away from battle, the rest are in trouble

If you have two (perhaps weaker and lower skill) ships fighting against one enemy:

  • even if the enemy gets first shot, and perhaps kills one of your ships, your other ship will still get a shot
  • a ship that is easy to hit (B-wing or Y-wing) will still not be hit if your opponent targets another ship
  • an A-wing (with an Evade token) will often not be shot at, because opponent shoots at anything else that is easier to hit

Evade tokens are very efficient against a single enemy ship, but two or three attacks the same round is much harder to survive.

Blocking
When you find yourself having lower pilot skill than your opponent you:

  1. Move first: making it hard to Target lock your opponents, and your opponent can pick actions, perhaps boosts or barrel rolls, knowing where your ships are.
  2. Shoot last: risking that your opponents kills you before you shoot back

Moving first has one advantage thought: you know where your enemy is when you move, so you should not need to fly into an opponent (losing an action). If you, on the other hand, can get in the way of (blocking) your opponent, he will lose his action. This can be very bad for him:

  • A lost evade action, which means you can hit a Tie fighter hard
  • A lost target lock, preventing a missile from being shot
  • A lost boost or barrel roll, preventing your opponent from getting in position, or getting out of the attack arc of some of your ships.

Kills count
This is quite obvious but I will mention it anyway. A ship can be in different health states:

  1. Undamaged
  2. Only lost shields
  3. Lost hull, but no criticals
  4. Got criticals
  5. Destroyed

An enemy ship in state 2-3 (and often 4) is equally dangerous to you as a ship with no damage at all. If the enemy squad has a total of 20 shields+hull, and you have produced 15 damage, dealt zero criticals and destroyed no ships, you have removed no threat at all. Only when you destroy a ship and it is taken off the board anything significant is achieved.

A good beginners’ squad
Unfortunately, a squad that is good to fly as a beginner is not the squad you want to buy first. The first squad that comes to mind is:

This is good for a beginner because:

  • Any ship is disposable
  • All ships have 3 attack dice
  • Integrated Astromech makes X-wing really good, and the R2 is disposable (requires a total of 28 damage to destroy squad)
  • Tallon roll is quite efficient to change bad positions into attack positions
  • All ships have the same maneuver dial
  • All ships have the same skill (move in any order)

The last two points help to avoid blocking yourself and makes the squad much easier to fly, especially for beginners.

I understand very well you find this suggestion very boring when there are so many cool ships out there!

A-Wings
A-Wings require the Push the Limit upgrade. You should most likely equip the Chardaan Refit and dont forget to consider the 0-point A-wing test pilot. You almost always make the Evade action and the A-wing will be hard to hit. When occationally hit, its shields will prevent it from getting criticals (as opposed to the Tie Interceptor). For 20p:

Dont worry about getting stressed: there are so many green maneuvers (to combine with a boost if needed). You can replace Trick Shot with Wired for 1p.

Weakness: without Evade you are easy to hit. If you run into another ship or an obstacle you miss your action (both of them, since you have Push the Limit) and your A-wing can die early.

B-Wings
B-wings are really cool, but they are not very easy to fly. The basic setup is:

For 24p it is a dangerous fighter. It is very tempting to start with a high-skill B-wing-pilot and add several upgrades, but it is usually not good. Your opponent will fear your B-wing and focus on killing it first. With one evade dice and a slow maneuver dial the B-wing is an easy target.

X-wings
If you read online sources it is widely thought that the X-wing is bad. It was true, but Integrated Astromech was released (for 0 points) and it improves the X-wing. Usually you should use the T70 (blue model from Force Awakens) rather than the T65 (the red model from original game). The X-wing is durable, rather maneuverable and has strong base attack: it may not be perfect for everything, but you can’t go very wrong. Suggested beginners configurations:

Y-wings
Y-wings need upgrade cards! Without extra equipment it is a waste of points. The obvious and very efficient option is to equip it with turret weapons: I am not too fond of torpedoes on the Y-wing because it can be hard to get firing opportunities. And as with the B-wing, your super-equipped-Y-wing will be primary target and it will quickly die. Try:

The above Y-wings can obviously benefit from a defensive astromech like R2-D2. Study the maneuver dial of the Y-wing and realise it is the same as the (T65) X-wing (just less green and more red).

Z95 Headhunter
At 12p, the Z95 can be used as a filler in a squad with 3 other ships. However, the A-wing Prototype Pilot with Chardaan Refit at 15p is often a better (superior maneuver dial + more actions + extra evade dice) option.

I have found that with the Headhunter, quantity is a quality of its own. This is not an easy beginners strategy – and who wants to start purchasing several of the worst ship in the game? Don’t get me wrong, I like the Z95 Headhunter much, but it is not the easiest ship to make good use of.

YT-1300 (Millenium Falcon)
The Millenium Falcon is very good – not the least for beginners. First, note that there is the old Millenium Falcon expansion pack, and the new Heroes of the Resistance expansion pack. You want the old one.

The Millenium Falcon is easy to fly well. Its 1-turn-maneuver allows you to navigate around obstacles. Its 3-strength-turret-weapon (you cant use Outer Rim Smuggler) is always dangerous against any opponent.

Note that the Millenium Falcon title is very good (few Rebel ships have evade). Since you will use it heavily you need the Han Solo pilot, the Luke Skywalker crew, or something else to make the attack deadly.

Other rebel ships
I think these above orginal ships are fine for the beginner. Other options are:

  • ARC-170, which I have too little experience with
  • E-wing, which is like a more expensive version of the X-wing, but few powerful ships make the squad more sensitive to mistakes and bad luck.
  • HWK-290 and U-wing, which are more about bringing support/crew to the rest of the squad. They are not so good fighters of themselves, so I would avoid them until you have more experience.
  • K-wing, which is expensive, easy to hit and I dont like bombs much.
  • YT-2400, but I think you are better off with YT-1300.

Upgrade cards and Pilot abilities
My general beginners advice is to focus on quantity before quality, similar ships with the same pilot skill (to make it easier to fly) and avoiding complicated upgrade combos and pilot abilities.

Torpedoes and Missiles are usually better avoided. They (most of the time) require a target lock. For X-wings and B-wings with 3 attack dice, it is almost as good to roll 3 dice and spend a target lock to reroll than it is to roll 4 dice with no rerolls. For A-wings missiles are 2 points extra (since you otherwise use Chardaan Refit). I would suggest:

I used to think that a problem with missiles and torpedoes is that you can load so few of them. The problem is often that you die before you fired them all (even if you just have one), and that you are so eager to fire them that you fire them at first possible opportunity without much effect. A single proton torpedo on a T70 X-wing to get a really nasty range 3 attack later in the game can work. But usually, you should not use your points for missiles and torpedoes.

Cannons can only be mounted on B-wings. But B-wings already have 3 attack dice, and if you make it too dangerous your opponent will quicky destroy it and your cannon is lost. I don’t generally recommend.

Turrets are more or less mandatory on Y-wings.

Upgrades that promote bad stuff like getting stress or flying on your own should be use with care. It can backfire and you can make bad decisions just to make use of an ability.

Combos with other ships like Wingman also makes it harder to fly: perhaps you are tempted to make a non-optimal move just to be able to use your skill. Biggs can be very good, but not if your opponent just kills him round 3 (or he is on his own).

There are better and worse abilities and upgrades, but I suggest:
1st consider to add another ship (or a more powerful ship)
2nd consider to add upgrades that always works (like Shield Upgrade)
3rd don’t add too many upgrades to any single ship

Focus on flying your squad right rather than building the perfect squad.

Note that the 15p A-wing is superior to a 12p Z95 + any 3p upgrade. The same way the T70 X-wing cost 3p more than the T65-xwing (for those 3p you get built in Shield Upgrade (4p) + Engine Upgrade (4p) + better maneuver dial and a tech upgrade slot).

Availability and Proxies
Compared to collectible card games like Magic The Gathering, X-wing Miniatures is very nice because everything is available. You don’t need to find used versions of old cards online for high prices just because you where not in the game a few years ago. Also, you know exactly what every expansion contains, so there is no luck or bad luck with booster packs.

Nevertheless, it is a quite expensive game. For casual play with friends I think proxying make sense. When it comes to upgrade cards, just print them! You don’t draw them from a deck so they dont have to look perfect. For example, C-3PO is a good Millenium Falcon crew, but you might not want to buy the Tantive IV expansion to get one card. If your friends are fine with it, go ahead.

Raspberry PI performance and freezes

On a daily basis I use a Raspberry Pi v2 (4x900MHz) with Raspian as a work station and web server. It is connected to a big display, I edit multiple files and it runs multiple Node.js instances. These Node.js processes serve HTTP and access (both read and write) local files.

I experienced regular freezes. Things that could take 2-3 seconds were listing files in a directory, opening a file, saving a file and so on.

I moved my working directory from my (high performance) SD-card to a regular spinning USB hard drive. That completely solved the problem. I experience zero freezes now, compared to plenty before.

My usual experience with Linux is that the block caching layer is highly effective: things get synced to disk when there is time to do so. I dont know if Linux handles SD-cards fundamentally different from other hard drives (syncing more often) or if the SD card (or the Raspberry Pi SD card hardware) is just slower.

So, for making real use of a Raspberry Pi I would clearly recommend a harddrive.

Mac hardware after Steve – a sad story

A few weeks ago Apple announced their new MacBook Pro, the one without SD card reader, magsafe power cable, regular USB ports, ESC-button or ethernet port. They also did not announce any updates to any other models, in particular the MacMini and the MacPro.

Over the years I have bought several Apple Mac computers for running Mac OS X, the first one being a PowerMac G4 @ 400MHz that I bought Mac OS X 10.0 for. Apart from having several Macs myself over the years, I have also advised and helped people around me to get Mac computers.

It was long since Apple hardware was such a disappointment and options were so limited.

For years my PC-friends told me Apple hardware was expensive and outdated. That was partly true. Apple, relying on PowerPC and its own ecosystem charged a premium. And when it came to MHz per buck it was not good. But Apple sold computers that got your job done while never being in your way and they lasted long.

Apple have always had reasons for making expensive hardware with non-impressive performance specs.

  • Intel most of the time outperformed the PowerPC manufacturers (at the same MHz PowerPC rarely beat Intel, and Intel was most of the time ahead in MHz)
  • Apple prioritized ergonomics and battery life rather than raw spec (you paid for a really nice display, good keyboard, noiseless experience (well well), rather than pure computing power)
  • With Mac OS X, Apple utilized the GPU for the 2D desktop in a way Windows didn’t, so the user experience was very nice despite a slower CPU and less RAM
  • Apple have been very careful not to make their consumer line cannibalize on their Pro line (look at the MacMini, which is kept simple enough to not challenge a MacPro)
  • Apple have been very careful to make even their cheapest pieces of hardware amazing pieces of technology from a manufacturing and material quality point of view

This has always been annoying for anyone on a budget. But in the end of the day an Apple Mac has had long good life and it got the job done. Also:

  • Hardware was regularly upgraded 1-2 per year with relevant improvements.
  • The hardware lineup was easy to understand and it made sense. All models had their place.

It has been quite like this:

MacBook Pro: 13/15/17 inch. Bigger is more powerful and more expensive.
MacBook: Fewer options, cheaper materials.
MacBook Air: Ultra-portable, few options.
MacPro: Outrageously expensive and very cool, for pro users and external display.
iMac: Standard desktop, display included, options for both value and performance.
MacMini: The budget option for people who want their own display.

The strategically missing models have been:
Desktop Tower: Reasonable price/performance, desktop parts (CPU/GPU/RAM/Storage), external display, flexibility. This would have cannibalized on the MacPro line and possibly broken the “just works” idea (with too many user-replacable parts and so on).
Budget Computers: Steve Jobs simply refused to make cheap hardware that he was not proud of.

What Apple provided was good products for most purposes, but you ended up paying a bit extra for the quality. Where the desktop tower was missing, poeple got MacPros even though is was a much nicer computer than they really needed. And the MacMini was a nice work horse for not too much money after all (and who wants, or needs, a big tower anyway).

So, buying Apple Mac hardware has always been annoying and expensive. But mostly because Apple have been teaching us: don’t just focus on numbers, we sell you a truly good product and you do get value for money!

Since Steve Jobs died something has changed (perhaps not because of his death, but from that time).

First, Apple don’t upgrade their hardware regularly anymore. When Apple sold 10% as many computers and hardly made any money, they pushed out new revisions twice per year (at the same time working with PPC->Intel transition). Right now (November 2016) the entire product line (except maybe the MacBook) is in desperate need for an upgrade, and Apple release a truly disappointing MacBook Pro (its not my opinion, just read the reviews). You can’t sell computers that haven’t been revised since 18 months at the same price as when it was announced! Not even the car industry do that! They used to fix this by revisions like: “slightly bigger harddrive, +200MHz, cheaper RAM upgrade, same price”. That was fair! Then you knew you could get a new computer without getting screwed.

Second, Apple don’t even improve their computers when they release a new revision. The current (2 year old) MacMini is technically worse in most ways than the 4 year old model! The just outdated 2012 MacBook Pro was easily upgraded to 16GB RAM – that is today a ridiculously expensive built-to-order-upgrade only. What the f**k was the decision to get rid of the magsafe charger? That connection was a unique selling point that on its own merit could make people pick an Apple over any other brand.

Third, Apple got obsessed with (small) size. It is really nice to have a maximum portability option (the MacBook Air is my favourite). But the entire line, including the MacPro, MacMini, MacBook and MacBook Pro, dont need to be built for minimum weight! If I can choose between smaller and lighter or larger and heavier, I pick small and light. But if it comes at a cost of features it is a different story! I literally was in the store, considering the MacBook Air 11 (that I knew I wanted) and the MacBook Air 13 (which had an SD slot). I was very close to getting the 13′ just becuase of the SD card slot, and I would never have considered it, if the 11 inch had an SD slot.

Why remove magsafe, ethernet, SD-card and USB-A from ALL MacBook Pro computers, and also discontinuing MacBook Air? Would it be unreasonable to give the users (the pros) those choices? Would it be unreasonable to have one laptop model built for features rather than low weight? Or would it compete with the never-ever-being-upgraded-MacPro then? Apple could have kept and upgraded only the MacBook Air (never released the MacBook and discontinued MacBook Pro), it would have been the same thing.

The options have rarely been so few.

I am fine. I personally don’t need much performance of my computers and I can use Windows or Linux instead. As it is now my only Apple computer is a MacBook Air. I would have had an Apple Desktop for playing (Steam) games, if Apple just sold one. It’s a shame, for many years lack of games (and software in general) was the weakest spot of Apple. Now when there are so many good games on Steam there are no Apple computers to play them on. I tried to play on my MacBook Air: it performs fine, but it gets too warm. Computers used for some purposes need proper cooling, and that requires size and weight.

Apple: with all the money on your pocket… can’t you just make a hi-quality product line, with products for people with different needs? Make a pro laptop with real performance and all the features. I still think my Titanium PowerBook is an incredibly nice piece of hardware (the display is still great compared to what is in the market today) – make a laptop that size. Make a desktop computer with a real GPU. And keep making the nicest ultrabooks too! It would make your product line easier to understand too! Right now it is just confusing – it is like you don’t want to sell computers at all.

Simple Drinks

You want to mix a simple nice drink for yourself, or your parter or a few friends. And you are thinking, maybe I can use that bottle of something, so you start searching for drinks with it. Good luck. You will find plenty of drinks with six-seven ingredients, some of those you never heard of…

I am not a bartender, but there are a few reasons I think this post is relevant after all:

  1. I am not so impressed with many drinks I order, despite they are made by professionals and contain fancy ingredients – I can often do better myself
  2. A lot of those extra ingredients are suger-syryp-artifical-flavour-stuff, that is not very nice
  3. I think, putting many ingredients in a drink just camouflages everything – if I put bourbon in it I want bourbon flavour

I use the established names of drinks when I know them. I do not invent names. You can often find multiple recipies for the same drink – if in doubt, trust the other source.

Basic ingredients
I have made a short list of simple base ingredients that are often used.

  1. Water
  2. Ice
  3. Orange
  4. Lemon (they are a bit bigger, and yellow)
  5. Lime (they are a bit smaller, and green)
  6. Sugar (Simple Syrup, see below)
  7. Coca Cola
  8. 7-Up
  9. Vodka
  10. Dark Rum
  11. Bourbon whiskey
  12. Cointreau
  13. Gin

The sugar can be turned into Simple Syrup. Mix 1 part water and 1 part sugar, heat in microwave oven, stir/heat until the sugar is completely dissolved, cool (quickly with plenty of ice or slowly in fridge).

drinks-basic

Glases and preparation
Cocktails are usually nice to serve in a Martini glass (to the far right above). For long drinks a Highballglas (middle) works fine, and a not to small whisky glass is also good for mixed drinks.

Most drinks should be served ice cold. Often it is enought to just add enough ice to the glas and pour the ingredients on top. If you are going to make many drinks, put the bottles in the freezer or fridge in advance.

A drink shaker is nice if you want to serve ice cold drinks without serving them with ice. But you need much ice and little drink content if you do not want your drink diluted by water. Most of the time, if you keep fruits and soda in the fridge and allow yourself to serve with ice, you will be fine. A real bartender would probably disagree here.

Drinks with just the Basics
Even with just the basics you can produce some very nice drinks.

  • Gimlet: 4 parts Gin, 1 part lime juice, 1 part simple syrup, martini glass
  • Vodka Lime: 4 parts Vodka, 1 part lime juice, 1 part simple syrup, martini glass
  • Whisky Sour: 6cl Bourbon, 3 cl fresh lemon juice, 1 tsp sugar, the white of one egg (egg optional: shake well with plenty of ice in shaker), you might want to sweeten this drink with a little simply syrup if you added too little sugar
  • White Lady: 1 part Cointreau, 1 part Gin, 1 part lemon juice, martini glas
  • 4 cl Bourbon, juice from 1/2 lemon, juice from 1/2 orange, fill up with 7-up in a highball glass
drink-gimlet whiskey-sour

Blue Curacao
Blue Curacao can produce drinks that look amazing (it is extremely blue, and if you mix it with something yellow, it turns very green), but it is trickier to make them taste good too.

drink-bluecuracao-bourbon

  • 1 part Blue Curacao, 1 part Bourbon, 1 part lemon juice, martini glas
  • 1 part Blue Curacao, 1 part Dark rum, 1 part lemon juice, martini glas

Calvados

  • Arch de Triumph: 4cl Calvads, 2cl lemon juice, 2tsp sugar, (stir well with ice) serve in martini glass
  • Apple Car: 4cl Calvados, 2cl Cointreau, 2cl lemon juice

Southern Comfort

  • 4 cl Southern Comfort, squeeze 1/2 lime and leave pieces in highballglass, fill up with Coke.
  • 6 cl Southern Comfort, 3 cl lemon juice, the white of one egg, shake well (like whisky sour, but using (already sweet) Southern Comfort instead of Bourbon and sugar.

Tequila

  • Margarita: 4 cl Tequila, 2 cl Cointreau, 2 cl fresh lime juice. Serve in martini glass. Remember to add salt to the edge of the glass (make wet with lime, dip in salt)

Vermouth / Martini

  • Dry Martini: 6 parts Gin, 1 part Vermouth, martini glass, garnish with an olive (a piece of lemon or lime is also nice)
  • Comfort Dry Manhattan: 4 parts Southern Comfort, 1 part Vermouth, martini glass

Long Island Iced Tea
Take a big glass, fill with ice. Then add 1cl Gin, 1cl Tequila, 1cl Vodka, 1cl White Rum, 1cl Triple Sec (or Cointreau), 2cl Lemon Juice and fill up with Coke (5cl, taste and try). I like to replace the Tequila with Laphroig (to make a Lapsang-iced-tea).

Ginger Ale
Ginger Ale is nice to mix. Fill a glass with ice. Squeeze and add a few lime wedges. Then add your choice of Vodka (Moscow Mule), Jack Daniels (Jack & Ginger) or Jameson (very nice). Finally fill up with Ginger Ale.

Experimental
2cl white Rum + 2cl Cointeau + 2cl Lemon + a little Raspberry vodka + a smashed raspberry, in a cocktail glass with plenty of ice, was quite good!

Xcode update stuck at waiting

My upgrade of Xcode (v8.0) was stuck at waiting. For days. I restarted the computer. Tried different things in the App Store applications. No success.

Finally I deleted the Xcode application from /Applications (just put it in Trash, not even emptying). That helped.

I found that idea here.

Gaming mouse, KVM and Linux

My old ugly Logitech mouse since 10 years died. For long I have been thinking about replacing it not really knowing what to get instead.

I have a “das keyboard” and I want a mouse with the same build quality and feel, but without a million configurable buttons. I also have a KVM switch (using two computers with the same display, keyboard and mouse) from Aten.

I bought a Corsair Katar mouse.

Findings:

  • When KVM-switching it takes a few seconds for the mouse to start working.
  • The mouse is very fast at first. In Windows it slows down after a few seconds (I guess when drivers and mouse profile kick in).
  • The mouse works just fine in Ubuntu, but it is too fast for my taste (even with basic mouse configuration options set at slowest).

Perhaps I would have been better off with a sub-$10-noname-mouse.

Update 2016-10-16
I found a way to slow down my mouse! This support post was useful, although my solution was slightly different.

First run:

$ xinput list
? Virtual core pointer                    	id=2	[master pointer  (3)]
?   ? Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
?   ? Corsair Corsair Gaming KATAR Mouse      	id=11	[slave  pointer  (2)]
?   ? Corsair Corsair Gaming KATAR Mouse      	id=12	[slave  pointer  (2)]
? Virtual core keyboard                   	id=3	[master keyboard (2)]
    ? Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ? Power Button                            	id=6	[slave  keyboard (3)]
    ? Video Bus                               	id=7	[slave  keyboard (3)]
    ? Power Button                            	id=8	[slave  keyboard (3)]
    ? Metadot - Das Keyboard Das Keyboard Model S	id=9	[slave  keyboard (3)]
    ? Metadot - Das Keyboard Das Keyboard Model S	id=10	[slave  keyboard (3)]

I found out that fixing device 11 was useless, but device 12 was helpful.

My mouse parameters are obtained:

$ xinput list-props 12
Device 'Corsair Corsair Gaming KATAR Mouse':
	Device Enabled (142):	1
	Coordinate Transformation Matrix (144):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 3.000000
	Device Accel Profile (269):	0
	Device Accel Constant Deceleration (270):	1.000000
	Device Accel Adaptive Deceleration (271):	1.000000
	Device Accel Velocity Scaling (272):	10.000000
	Device Product ID (262):	6940, 6946
	Device Node (263):	"/dev/input/event6"
	Evdev Axis Inversion (273):	0, 0
	Evdev Axes Swap (275):	0
	Axis Labels (276):	"Rel X" (152), "Rel Y" (153), "Rel Vert Wheel" (268)
	Button Labels (277):	"Button Left" (145), "Button Middle" (146), "Button Right" (147), "Button Wheel Up" (148), "Button Wheel Down" (149), "Button Horiz Wheel Left" (150), "Button Horiz Wheel Right" (151), "Button Side" (266), "Button Extra" (267), "Button Forward" (291), "Button Back" (292), "Button Task" (293), "Button Unknown" (265), "Button Unknown" (265), "Button Unknown" (265), "Button Unknown" (265), "Button Unknown" (265), "Button Unknown" (265), "Button Unknown" (265), "Button Unknown" (265), "Button Unknown" (265), "Button Unknown" (265), "Button Unknown" (265), "Button Unknown" (265)
	Evdev Scrolling Distance (278):	1, 1, 1
	Evdev Middle Button Emulation (279):	0
	Evdev Middle Button Timeout (280):	50
	Evdev Third Button Emulation (281):	0
	Evdev Third Button Emulation Timeout (282):	1000
	Evdev Third Button Emulation Button (283):	3
	Evdev Third Button Emulation Threshold (284):	20
	Evdev Wheel Emulation (285):	0
	Evdev Wheel Emulation Axes (286):	0, 0, 4, 5
	Evdev Wheel Emulation Inertia (287):	10
	Evdev Wheel Emulation Timeout (288):	200
	Evdev Wheel Emulation Button (289):	4
	Evdev Drag Lock Buttons (290):	0

Here, the “Coordinate Transformation Matrix” is the key to speeding the mouse down. The last parameter was 1.0, it is now 3.0, this seems to mean my mouse is just a third as fast as it used to be. To set it:

xinput --set-prop 12 "Coordinate Transformation Matrix" 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 3.0

I suppose your mouse can go quite crazy if you change all those 0.0 to something else. Good luck!