Korg i3 – power rail repair

Aufrufe: 9

I bought a Korg i3 – broken – from ebay, the seller claimed it just stopped working. If that is true, usually the power rail is to blame. And in most cases it’s a dead capacitor. No big deal – usually.

The first board to come out is KLM-1631:

And a check on the components showed me that something let the magic smoke out – LC1. And it was right at the connector to the power supply:

The power supply looked good, so I assumed this was the culprit.

According to the Service manual, LC1 is a DST310, a component I hadn’t seen before, but I had guessed right, a blown capacitor.

I don’t have these and couldn’t find a source – maybe these aren’t produced anymore? But it’s just a power filter, I could probably get away with just connecting CN8A-5 directly to the “A” point. But having capacitive storage in a power rail is always a good thing. And since I’m already in there, I can do at least a decent job.

So I desoldered this LC1, cleaned the board and had to find the traces were eaten away. I additionally removed C92 as these capacitors were just in parallel. Also, maybe C92 was damaged by some surge – it was in the way and costs next to nothing. Only to find out that the trace going to C92 had left us as well.

So, if in doubt – scream and shout. Uhm… these are buffer capacitors, so they just sit between plus and minus, both traces were large enough to just scratch the solder screen off and solder in capacitors. Again, I could probably have gotten away with just one, but the original schematic had two, so I used two:

Yep, it’s ugly. Yep, I probably should have used a ceramic for the smaller one, but seriously, it is the 5V rail, quite likely this is the supply for the logic and won’t have any effect on the sound.

Starting up, it works:

So, I was right to assume a blasted capacitor in the power rail was to blame.

But, as Dr. House kept reminding us: people lie.

Next up: Repairing Power-On-Mute on an i3.

Salesforce Mailchimp integration update 1.93.2

Aufrufe: 524

Unfortunately Mailchimp created a little hickup in the update 1.93.2 (2020-08-11) to their Salesforce integration. When you open the setup “MC Setup” you might be greeted with an error message:

“Read” permission to field “MC4SF__Prompt_For_Full_Sync__c on object “MC4SF__MC_List__c” is not allowed for the current user.

I had seen this on my Developer Edition org at first and contacted the Mailchimp support. Sadly it doesn’t seem to ring enough alarm bells, the final answer was “Since the error has a quick fix and it’s not causing an issue in all accounts, we will be keeping an eye out for further instances to see if there are any similarities.” It seems a bit strange to me, as this is breaking existing installations when the update is applied.

However, there is a solution. In the field level security settings of the field “Prompt For Full Sync” on “MC Audience” you have to give read access to this field for all profiles that will use the Mailchimp integration.

In “Setup” navigate to “Object Manager”

Then select “MC Audience”

And in Fields & Relationships select “Prompt For Full Sync”

Then go to the field level security and grant at least read permissions to all profiles that use the Mailchimp integration

It seems that “read” is all that is required, but I don’t know that for a fact.

I’m just astonished that this newly introduced field seems to be a necessity, yet the managed package does not provide any permissions for this field. Additionally I would have expected Mailchimp to quickly remedy this issue. Luckily for ConcisCons customers, I had seen that problem before they experienced problems with that.

Additionally, it seems that these missing permissions in a managed package is not a first for Mailchimp: the MC Setup page is returning an error

Roland XP-80 – dead with lights on

Aufrufe: 278

So I have a Roland XP-80 with a similar issue as this guy who shows us on Youtube how to replace the battery in the thing. The LCD backlight is on as is the LED on the disk drive. Apart from that – no sign of life.

For me it was an easy fix, as it was quite obvious what had happened:

Capacitor 201 (47µF, 6V) had blown up quite spectacularly. To remedy that, I soldered in one that I had lying around (not exactly the same type, mine has a rating of 25 Volt), and after that all was well.

The stain on the board was quite substantial, so I had to carefully scratch the sod away to try and see if the traces were still in good condition (it always helps if you have access to a service manual / service notes, you can find some at synfo.nl). And yes, all was still connected according to my multi meter.

This would have been a job for a few minutes if I had done that in a sensible manner – but no, I had to start too far down the path.

Remember the simplest steps to find an issue with electronics (I think Louis Rossmann and Dave Jones deserve a bit of credit here):

  • Sniff the board – really, that was a dead give-away here. It stank of exploded component. I just ignored it.
  • Visual inspection – if it doesn’t smell funny, you should still look for the sh*t stain on the board. As you can see above, another dead give-away. I just ignored it.
  • Thou shall check voltages – And this is where I started at. At the power supply. Which was basically fine.

Now, after these steps you can start using your brain, try to check clocks – which was what I was going to do next, but luckily the chip I wanted to probe was close to the exploded capacitor. You can follow signals, measure in circuit, desolder components to measure outside of the circuit and what not.

But only after the sniff test and the visual inspection! Took me the better part of three hours because I didn’t.

Salesforce: rendering of Visual Force pages and context

Aufrufe: 124

In a simple, straightforward programming situation, you would assume that functions are executed when they are seemingly called. When you are rendering a Visual Force page in Salesforce, things seem to be a bit mixed up. Though it seems counter-intuitive, it is understandable what happens.

Let’s take a simple example of a Visual Force page with a controller.

Page (atest):

<apex:page controller="Atest">
    Parameter: {!parameter} <br />
    Parameter2: {!parameter2} <br />
    Parameter: {!parameter} <br />
    Parameter2: {!parameter2} <br />
    Parameter: {!parameter} <br />
    Parameter2: {!parameter2} <br>
</apex:page>

Controller:

public class Atest {
    private Integer parameter;

    public Atest () {
        System.debug ('Constructor called.');
        parameter = 1;
    }

    public Integer getParameter () {
        System.debug ('getParameter');
        parameter = parameter + 1;
        return parameter;
    }

    public Integer getParameter2 () {
        System.debug ('getParameter2');
        parameter = parameter + 1;
        return parameter;
    }

    public PageReference nextPage () {
        PageReference page1 = new PageReference('/apex/atest2');
        Blob b = page1.getContentAsPDF();
        PageReference page2 = new PageReference('/apex/atest2');  
        b = page2.getContentAsPDF();
        PageReference page3 = new PageReference('/apex/atest2');  
        return page3;
    }
}

{!parameter} is a reference to the method getParameter () and {!parameter2} a reference to getParameter2 (). Ignore the method nextPage () for now…

So what you might expect is that the Visual Force renderer calls getParameter (). This increases the variable parameter by 1 and returns its new value. We do see the output “Parameter: 2” – as expected. Then the renderer calls getParameter2 (). This again increases the variable parameter by 1 and returns its new value. We do see the output “Parameter2: 3” – as expected.

Next, we want “parameter” again – seemingly a call to the method getParameter (). But now the method is not actually executed; parameter is not increased anymore. We get the outputs “Parameter: 2” and “Parameter2: 3” again and again, no matter how many times we think the method is called.

Now for the second part in the controller above, we need the VF page atest2, which is virtually the same, except that it is a different file. Also, for convenience to call the method in our class, add

<apex:form>
    <apex:commandButton action="{!nextPage}" value="next page" />
</apex:form>

to the page atest. When you now click on “next page”, the page atest2 is created 3 times. To make sure that it is actually rendered, we get the content of the page as a pdf, and the third time, the page is returned as a PageReference. Therefore you are transported to the page atest2.

What you now see is “Parameter: 4” and “Parameter2: 5”. Even though we have rendered the page atest2 3 times, the variable parameter has only been increased by 1 two times.

This is because the renderer works in the same context for all 3 times it renders atest2. getParameter () and getParameter2 () are both called exactly once, and that only, because we are rendering a page in a new context – the call to the method nextPage (). You could even create the pages atest3 and atest4, have them rendered after each other (in one method), and “Parameter” and “Parameter2” will be the same value for each rendered page.

Any output of a method is directly cached, and the method is not called again, except for if you force a rerender – because that is what re-rendering is for. If you know that values will change, you have to instruct Visual Force to do a new rendering.

To get around this, make sure that you create a new context for a new page with changing information. The easiest way to do so is IMHO to create a controller instance for every page that needs to be rendered, and this in turn can be done by having a different controller for the subsequent pages.

tl;dr:

Do not change the information of a variable or method during one rendering context. Have all information be calculated before anything is actually rendered, and do not change information when using a get-method. If information changes due to user input, have the sections that show information based on the input rerendered when necessary.

Overall: within one context the VF renderer will always call any getter only once.

Was soll das Gerede in Warteschleifen?

Aufrufe: 89

Jetzt bin ich wieder in so einer Hotline-Warteschleife (ich möchte doch mal wissen, was Medion zu den widersprüchlichen Angaben zu dem Rechner zu sagen hat), und werde mit Musik genervt.

Aber die Unsitte, dass alle paar Sekunden eine Bandansage mich darüber informiert, dass immer noch niemand zur Verfügung steht, ist extrem störend. Wenn einfach nur Musik läuft, dann schalte ich halt den Lautsprecher an, lasse das Telefon neben mir liegen, und kann weiter arbeiten. Eine menschliche Stimme allerdings reisst mich dann raus – es gibt mir Hoffnung, dass jemand mit mir reden, ja vielleicht sogar mein Problem lösen könnte.

Wirklich: lasst diese sinnlosen Ansagen. Es glaubt doch sowieso niemand, was da geredet wird. “Nur noch ein paar Augenblicke..”, “Der nächste freie Mitarbeiter…” Blah blah blah. Es nervt!

Aldi liefert nicht übermäßig schnell – Medion Erazer X67015

Aufrufe: 768

Am Montag, 4.12. direkt morgens im Aldi bezahlt, aber bis heute noch nicht einmal verschickt.

Den Medion Erazer X67015 hätte ich gerne. Ich hatte schon angefangen, mir Preise für die Komponenten raus zu suchen, und bin dann zu einem ähnlichen Gesamtpreis gelangt. Allerdings hätte ich dann in 3 Shops bestellen müssen, und das Ding noch zusammen bauen. So entspricht der Rechner in etwa der Leistungskategorie, die ich wollte, aber vor allem ist alles zusammen. Mit Garantie.

Allerdings fand ich das Konzept schon etwas gewöhnungsbedürftig. Ich muss also vor Ort im Laden mein Geld abgeben, erhalte dafür einen flimsigen Zettel mit einem Code, und muss dann das ganze Prozedere einer Online-Bestellung noch zusätzlich machen. Und dann halt darauf warten, dass das Gerät auch zu mir kommt.

Dienstag morgen, 0:30h erhalte ich eine Email von Aldi:
“die folgende Bestellung werden wir heute versenden:
[…]
Versanddatum: 04.12.2017”

Also erstmal: die Email ging am 5.12. raus. Sie war im Futur geschrieben und behauptet, am 4.12. würde die Bestellung versendet werden.

Aber ich freute mich dennoch, das schien ja schnell zu funktionieren. Schwierigkeiten mit den Zeitformen der deutschen Sprache kann ich gut ignorieren. Aber jetzt haben wir den 6.12., 2 Tage nachdem die Bestellung versandt werden sollte. Der Status bei DHL ist immer noch, dass die Daten elektronisch übermittelt wurden, aber auch DHL noch auf das Paket wartet:

Sendungsverfolgung DHL: am 5.12. wurden die Daten elektronisch übermitteltIch bin gespannt, ob und wann da noch etwas passiert. Ich bin vor allem sauer, weil die Email eine ganz andere Zusage enthielt. Und das ist einfach nicht in Ordnung!

Telefonisch war auch keine andere Information zu erhalten. Die Person im Callcenter sagte nur, er wisse nicht, was die verschiedenen Firmen untereinander ausgemacht haben. Wie üblich bin ich als Kunde wieder Wurst.

Meine neue KFZ-Werkstatt des geringsten Misstrauens

Aufrufe: 83

Für Autowerkstätten bin ich ein Albtraum. Ich glaube immer, dass ich durchaus verstehe, was da so gemacht wird. Ich glaube auch, dass nicht alle KFZ-Werkstätten immer korrekt abrechnen. Daher braucht es eigentlich auch viel Überzeugungsarbeit seitens der Beschäftigten, damit ich eine Werkstatt mehr als einmal betrete.

Es fängt schon bei dem Allgemeinen Kriterium an, dass ich sicher sein möchte, dass sich jemand der Grenzen seines Wissens bewusst ist. Das ist bei allen Fachkräften so. Niemand kann selbst in seinem Spezialgebiet alles wissen. Daher ist immer ein wichtiger Faktor, ob jemand bereit ist, die Grenzen seines Wissens zu offenbaren – das ist die wichtigste Vorstufe zum Eingestehen von eigenen Fehlern. und auch da: niemand ist unfehlbar. Aber jeder kann von seinen Fehlern lernen.

Wie dem auch sei, da habe ich endlich jemand gefunden, dem ich mein Auto anvertraue. Nicht nur, dass er bei allen Fragen die “richtigen” Antworten gegeben hat, sondern vor allem: Fragen wurden nicht genervt als scheinbaren Angriff auf die Autorität angesehen. Außerdem wurden nur Reparaturvorschläge gemacht, die auch meiner Meinung nach Aussicht auf Erfolg hatten.

Er sagt, er braucht keine weitere Werbung, daher kann ich auch mit ihm keine Geschäfte zum Guten meiner Firma machen. Wer braucht schon eine Webseite, die den aktuellen technischen Ansprüchen genügt, wenn man genügend Kunden hat.

Dennoch möchte ich hier öffentlich mein Lob und meinen Dank an Holger Ludwig senden. Seine Werkstatt Fahrzeug & Motor – Technik & Design in Bergisch Gladbach ist derzeit meine Werkstatt des geringsten Misstrauens. Und das, obwohl ich 45 Kilometer bis dahin fahren muss.

Danke!

4 Minuten Werbung bei Youtube?

Aufrufe: 86

Da wollte ich mir doch nur Electro-Boom ansehen, und dann kommt da 4 Minuten Werbung wegen Potenzproblemen. Nicht-überspringbar. Was will mir Youtube damit sagen? Dass es ernsthaft Zeit für einen Adblocker wird? Bin ich so alt, dass ich so etwas brauche? Wahrscheinlich. Bislang kam ich ohne aus.

David-emmerich.com geht mir gerade tierisch auf die Nerven, und wenn ich diese Person jemals im echten Leben sehe, gibt’s was auf die Zwölf!

Aber da schon wieder: 1 Minute 18, Mercedes, nicht überspringbar. Das war es dann wohl!