<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-32710003</id><updated>2022-11-22T16:12:32.046+01:00</updated><category term="software"/><category term="java"/><category term="windows"/><category term="apple"/><category term="linux"/><category term="bug"/><category term="mysql"/><category term="database"/><category term="hardware"/><category term="development"/><category term="mac os x"/><category term="ubuntu"/><category term="fun"/><category term="mac"/><category term="eclipse"/><category term="network"/><category term="caveat"/><category term="vcs"/><category term="cvs"/><category term="ipod"/><category term="internet"/><category term="ios"/><category term="mysql-admin-cookbook"/><category term="standards"/><category term="devops"/><category term="mobile"/><category term="x11"/><category term="xml"/><category term="conference"/><category term="findbugs"/><category term="registry"/><category term="ssh"/><category term="firefox"/><category term="groovy"/><category term="nvidia"/><category term="osgi"/><category term="xcode"/><category term="amiga"/><category term="ansible"/><category term="automation"/><category term="ceph"/><category term="cocoa"/><category term="itunes"/><category term="mail"/><category term="mia"/><category term="misc"/><category term="retro"/><category term="talk"/><category term="internet explorer"/><category term="openstack"/><category term="security"/><category term="cloud"/><category term="gnome"/><category term="jax"/><category term="office"/><category term="open source"/><category term="quality"/><category term="apache"/><category term="applecare"/><category term="codingserbia"/><category term="cooking"/><category term="haproxy"/><category term="interview"/><category term="ipad"/><category term="iphone"/><category term="ivy"/><category term="jinja2"/><category term="movies"/><category term="recipes"/><category term="safari"/><category term="serbia"/><category term="sonar"/><category term="ssl"/><category term="star wars"/><category term="warranty"/><category term="xtext"/><title type='text'>Daniel Schneller&#39;s Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.danielschneller.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>260</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-32710003.post-6253915237250252432</id><published>2020-08-25T01:31:00.001+02:00</published><updated>2020-08-25T01:33:32.627+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="amiga"/><category scheme="http://www.blogger.com/atom/ns#" term="fun"/><category scheme="http://www.blogger.com/atom/ns#" term="hardware"/><category scheme="http://www.blogger.com/atom/ns#" term="retro"/><title type='text'>Amiga 500 Restoration: Mouse and Mainboard Maintenance</title><content type='html'>&lt;p&gt;With the memory expansion board fixed in the last post, I needed to perform more electronics fixes, this time to get the mouse back in working order. Notice that I did this in March 2018, but somehow forgot to write the post. So with a little delay, here it is.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This is the fourth post in a series about restoring an Amiga 500 back to its former glory. Here are all of them so far. I’ll try to remember to update this in all related entries.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2017-12-24: &lt;a href=&quot;http://www.danielschneller.com/2017/12/amiga-500-restoration.html&quot;&gt;Amiga 500 Restoration&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2018-01-05: &lt;a href=&quot;http://www.danielschneller.com/2018/01/amiga-500-restoration-retrobrighting-i.html&quot;&gt;Retrobrighting I&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2018-02-05: &lt;a href=&quot;http://www.danielschneller.com/2018/02/amiga-500-restoration-a501-memory.html&quot;&gt;A501 Memory Expansion&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2018-02-05: &lt;a href=&quot;http://www.danielschneller.com/2020/08/amiga-500-restoration-mouse-and.html&quot;&gt;Mouse and Mainboard Maintenance&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;To Click, or Not To Click&lt;/h2&gt;
&lt;p&gt;When I won the ebay auction, I quickly realised that finding an Amiga compatible (modern) monitor would be a problem. Luckily, my 2011 Panasonic plasma TV has a SCART input, which I remembered to be compatible with the Amiga RGB output. Resisting my first urge to build a cable myself, I instead ordered one for a few Euros from another ebay seller. While waiting for it to arrive, I could just do a very superficial check. Read the first post &lt;em&gt;&lt;a href=&quot;http://www.danielschneller.com/2017/12/amiga-500-restoration.html&quot;&gt;Amiga 500 Restoration&lt;/a&gt; &lt;/em&gt;for more on that.&lt;/p&gt;
&lt;p&gt;When the cable finally arrived, in the meantime I had received two sets of Workbench and Extras disks, too. Armed with those, without even having the keyboard caps put back on, I hooked up the Amiga to the TV, just because I was so curious to see the Workbench for the first time in decades. Fully aware that I wouldn&#39;t be able to type anything, at least I could click around with the mouse for a bit. Or so I thought.&lt;/p&gt;
&lt;p&gt;When the workbench screen came up, I noticed that only one of the mouse buttons worked. The menu bar would change when clicking and holding the right one, but no click events were registered by the OS for the left button. My first guess was that the left button switch was just worn out and had failed and would have to be replaced. But, I thought, maybe it was something else, because both buttons sounded and felt just the same. So I suspected something might be wrong with the cable or the connector and I would have to investigate in more detail. Spoiler alert: Sometimes your first idea is &lt;em&gt;not&lt;/em&gt; wrong, but also might not be completely right.&lt;/p&gt;
&lt;h3&gt;The Mouse Cable&lt;/h3&gt;
&lt;p&gt;I opened the mouse and checked continuity between the connector on the mouse PCB and the D-SUB9 socket at the end of the cable. And bingo: The line for the left mouse button did not show any connection, unless I added a thin wire to the probe and shoved it very far into the corresponding hole in the socket. Visually the plug looked quite worn out, too, so it made sense that the pin from the Amigas male D-SUB counterpart did not reach far enough into the socket to make a connection.&lt;/p&gt;
&lt;p&gt;I ordered a replacement connector, and when it arrived, I cut off the original, taking a few closeups to easily verify the order of the wires later.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;MM_01.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-kHqD6j--ASE/WqgcZnfa98I/AAAAAAAADxo/kgbUm4E3dlEB2VpbrCHXZ1FqdXvpUbsqQCHMYCw/MM_01.jpg?imgmax=1600&quot; alt=&quot;The old connector. Documentation picture to verify I get all the cables in the right places.&quot; width=&quot;600&quot; height=&quot;400&quot; border=&quot;0&quot; /&gt;&lt;img title=&quot;MM_02.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-LkRgbG7QozM/WqgcaNB2QkI/AAAAAAAADxs/DuUgWJmn-1cSwj9ZOAEG5o9yFVKzsZpNQCHMYCw/MM_02.jpg?imgmax=1600&quot; alt=&quot;Anpther reference photo, straight from the back side of the mouse plug.&quot; width=&quot;600&quot; height=&quot;405&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Next, I tinned the leads to make it easier to fit them into the new connector…&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://lh3.googleusercontent.com/-9OISFS3j-b4/Wqgca9Nk4eI/AAAAAAAADxw/5MMSPQVmcbgRQL1iwOOohtEpYKr39V5uwCHMYCw/MM_03.jpg?imgmax=1600&quot;&gt;&lt;img title=&quot;MM_03.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-9OISFS3j-b4/Wqgca9Nk4eI/AAAAAAAADxw/5MMSPQVmcbgRQL1iwOOohtEpYKr39V5uwCHMYCw/MM_03.jpg?imgmax=1600&quot; alt=&quot;Tinned leads.&quot; width=&quot;600&quot; height=&quot;400&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;… and then soldered them into place:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://lh3.googleusercontent.com/-Qb8Zaz1DJxI/Wqgcbqqxx7I/AAAAAAAADx0/kcKAytvDp9UjsM2i16wSwCG1yKFtb5otwCHMYCw/MM_05.jpg?imgmax=1600&quot;&gt;&lt;img title=&quot;MM_05.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-Qb8Zaz1DJxI/Wqgcbqqxx7I/AAAAAAAADx0/kcKAytvDp9UjsM2i16wSwCG1yKFtb5otwCHMYCw/MM_05.jpg?imgmax=1600&quot; alt=&quot;Soldering the leads into the new connector.&quot; width=&quot;598&quot; height=&quot;392&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://lh3.googleusercontent.com/-BcZZIi-ZsLU/WqgccfZL2UI/AAAAAAAADx4/-2NaruwQVrwJ50kBGzL396LHiNpyX9aYACHMYCw/MM_06.jpg?imgmax=1600&quot;&gt;&lt;img title=&quot;MM_06.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-BcZZIi-ZsLU/WqgccfZL2UI/AAAAAAAADx4/-2NaruwQVrwJ50kBGzL396LHiNpyX9aYACHMYCw/MM_06.jpg?imgmax=1600&quot; alt=&quot;New connector with all the wires attached.&quot; width=&quot;599&quot; height=&quot;398&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Turns out, the first one was easy, but with each further one, it got more difficult to fit them into their little solder cups while not burning the insulation of the previous ones. I am quite pleased with the end result, though.&lt;/p&gt;
&lt;p&gt;I double checked I had connected each color to the right pin and also verified connectivity between the connector inside the mouse, and the new plug. This time, none of them made any trouble.&lt;/p&gt;
&lt;p&gt;Finally I just needed to put the casing around the connector. This is what it looked like in the end:&lt;/p&gt;
&lt;p&gt; &lt;a href=&quot;https://lh3.googleusercontent.com/-HDAFJqySVnI/WqgccwrjEYI/AAAAAAAADx8/zUJve__CfkIKeXoAzXR46po2ufLfMw2PACHMYCw/MM_07.jpg?imgmax=1600&quot;&gt;&lt;img title=&quot;MM_07.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-HDAFJqySVnI/WqgccwrjEYI/AAAAAAAADx8/zUJve__CfkIKeXoAzXR46po2ufLfMw2PACHMYCw/MM_07.jpg?imgmax=1600&quot; alt=&quot;The new connector - front view.&quot; width=&quot;598&quot; height=&quot;398&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://lh3.googleusercontent.com/-YGcqIq5LvUo/WqgcdhF614I/AAAAAAAADyA/xYl6fv8m0nEKBeCyY-ZTLuCjLJcfTMbCACHMYCw/MM_08.jpg?imgmax=1600&quot;&gt;&lt;img title=&quot;MM_08.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-YGcqIq5LvUo/WqgcdhF614I/AAAAAAAADyA/xYl6fv8m0nEKBeCyY-ZTLuCjLJcfTMbCACHMYCw/MM_08.jpg?imgmax=1600&quot; alt=&quot;The new connector - back view.&quot; width=&quot;599&quot; height=&quot;410&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It is not quite as slick as the original one, but what can you do...&lt;/p&gt;
&lt;h2&gt;To Click, or (still) Not To Click&lt;/h2&gt;
&lt;p&gt;Eager to finally get some clicking action done, I hooked the Amiga up to the TV again. Imagine my &lt;strike&gt;surprise&lt;/strike&gt; disappointment when it still did not work. Also, and I had noticed that before, but not paid attention to it, the pointer only moved along one axis. So there was still something wrong with that mouse, or was it?&lt;/p&gt;
&lt;p&gt;With the new connector in place, I had a closer look at the mouse port on the motherboard. At first, it looked ok, but when I pointed a light directly at it at just the right angle, this is what I saw:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-n5fcAWSUf44/X0Q-dgNicbI/AAAAAAAAFEE/6MpFCsAhxHMt2-kFGQRDbgg2jAOJxoXUQCLcBGAsYHQ/s2048/MP_03.jpg&quot;&gt;&lt;img title=&quot;MP_03.jpg&quot; alt=&quot;Broken mouse port&quot; border=&quot;0&quot; width=&quot;598&quot; data-original-height=&quot;1536&quot; data-original-width=&quot;2048&quot; src=&quot;https://1.bp.blogspot.com/-n5fcAWSUf44/X0Q-dgNicbI/AAAAAAAAFEE/6MpFCsAhxHMt2-kFGQRDbgg2jAOJxoXUQCLcBGAsYHQ/s400/MP_03.jpg&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So not only was the connector on the mouse worn out, but also its counterpart on the board had three broken pins. Port 2 was fine, but AmigaOS does not let you choose between them for the mouse. So that needed replacement as well. Here&#39;s a close-up of the broken port from a slightly different angle, making the damage even more obvious:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-lgBZHQic2LM/X0Q-dKNvL-I/AAAAAAAAFEM/HPjJfqdja9cH8SmKVL2qSeoldcid-_fFwCPcBGAYYCw/s2048/MP_01.jpg&quot;&gt;&lt;img alt=&quot;Broken mouse port close-up&quot; border=&quot;0&quot; width=&quot;598&quot; data-original-height=&quot;1536&quot; data-original-width=&quot;2048&quot; src=&quot;https://1.bp.blogspot.com/-lgBZHQic2LM/X0Q-dKNvL-I/AAAAAAAAFEM/HPjJfqdja9cH8SmKVL2qSeoldcid-_fFwCPcBGAYYCw/s400/MP_01.jpg&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once the ordered replacement arrived, I needed to desolder the defective port from the motherboard. That turned out to be quite challenging. There are two anchoring hooks, one each to the left and right of the actual socket. Those are supposed to provide mechanical stability for the ports, but at the same time they act as a heat sink, because they are directly attached to the connectors casing and also linked to the board with big blobs of solder. So it took quite a while to get everything hot enough to finally melt the solder and get the old part out. This is the result (from the underside of the board) after cleaning up the mess of flux and solder remains:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-VKLWQwkGbjk/X0Q-dj3zMdI/AAAAAAAAFEQ/xhoJmPj3mQkihrrDbDSoJtTykumDmRHtQCPcBGAYYCw/s2048/MP_02.jpg&quot;&gt;&lt;img alt=&quot;Desoldered port, PCB bottom view&quot; border=&quot;0&quot; width=&quot;598&quot; data-original-height=&quot;1347&quot; data-original-width=&quot;2048&quot; src=&quot;https://1.bp.blogspot.com/-VKLWQwkGbjk/X0Q-dj3zMdI/AAAAAAAAFEQ/xhoJmPj3mQkihrrDbDSoJtTykumDmRHtQCPcBGAYYCw/s400/MP_02.jpg&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As you can see, not only does the socket and its shield act as a heat sink, but they are soldered to a large ground plane on the circuit board as well, so if you ever need to do something like this yourself, be patient and make sure to use a soldering iron with enough power. Alternatively, preheat the board around that area with hot air, if you have a hot air station.&lt;/p&gt;
&lt;p&gt;Getting the new part in was, of course, way easier. Here&#39;s a comparison of the old and new sockets side by side, and the underside of the board with the new part in place:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-IBI2u02-35I/X0RCo57sWmI/AAAAAAAAFEY/Fl3tWobqYmoZ6ysYdFjVocMpTRyMX24twCLcBGAsYHQ/s2607/MP_04.jpg&quot;&gt;&lt;img alt=&quot;Old and new mouse port, side by side on the table&quot; border=&quot;0&quot; width=&quot;598&quot; data-original-height=&quot;1206&quot; data-original-width=&quot;2607&quot; src=&quot;https://1.bp.blogspot.com/-IBI2u02-35I/X0RCo57sWmI/AAAAAAAAFEY/Fl3tWobqYmoZ6ysYdFjVocMpTRyMX24twCLcBGAsYHQ/s400/MP_04.jpg&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-EFDm9-UqQ7M/X0RDeozNk-I/AAAAAAAAFEg/ZtzFWgSva8o-tYeW4j74VuTfobRqMekWwCLcBGAsYHQ/s2048/MP_05.jpg&quot;&gt;&lt;img alt=&quot;New port soldered in, PCB underside&quot; border=&quot;0&quot; width=&quot;598&quot; data-original-height=&quot;1402&quot; data-original-width=&quot;2048&quot; src=&quot;https://1.bp.blogspot.com/-EFDm9-UqQ7M/X0RDeozNk-I/AAAAAAAAFEg/ZtzFWgSva8o-tYeW4j74VuTfobRqMekWwCLcBGAsYHQ/s400/MP_05.jpg&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I made sure to again put a good amount of solder in the mounting holesto provide the required physical strength to survive lots and lots of insertions for years to come.&lt;/p&gt;
&lt;h2&gt;To Click, or... Well, You Know What&#39;s Coming...&lt;/h2&gt;
&lt;p&gt;Clearly, now with the connectors on both the computer&#39;s and the mouse&#39;s side fixed, what could possibly go wrong now? First of all, at least the pointer was now moving correctly along both X and Y axes, but the left button was &lt;em&gt;still&lt;/em&gt; not working. Remember the opening paragraphs of this post?&lt;/p&gt;
&lt;blockquote&gt;
Spoiler alert: Sometimes your first idea is &lt;em&gt;not&lt;/em&gt; wrong, but also might not be completely right.
&lt;/blockquote&gt;
&lt;p&gt;You might be guessing it already: When I had checked for continuity after replacing the plug, I had measured from the mouse PCB connector to the other end of the cable, but not from the switch. And, of course, the left button had actually failed. I had a few of those in stock, so as a final step I replaced them both the left and the right ones.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-irgnknWWfx8/X0RJliB-SKI/AAAAAAAAFEw/ukkjisW8ESgek7gwq4Hr7xL7h7mcWJ_EACLcBGAsYHQ/s2048/MB_01.jpg&quot;&gt;&lt;img alt=&quot;Mouse PCB, one button switch desoldered&quot; border=&quot;0&quot; width=&quot;598&quot; data-original-height=&quot;2048&quot; data-original-width=&quot;1504&quot; src=&quot;https://1.bp.blogspot.com/-irgnknWWfx8/X0RJliB-SKI/AAAAAAAAFEw/ukkjisW8ESgek7gwq4Hr7xL7h7mcWJ_EACLcBGAsYHQ/s400/MB_01.jpg&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-VdoQD54EiyY/X0RJk5A2CAI/AAAAAAAAFEs/dj8KU4VQEGYRbgMxW4zG-gmti0IrkYvxgCLcBGAsYHQ/s1241/MB_02.jpg&quot;&gt;&lt;img alt=&quot;Replacement buttons&quot; border=&quot;0&quot; width=&quot;598&quot; data-original-height=&quot;801&quot; data-original-width=&quot;1241&quot; src=&quot;https://1.bp.blogspot.com/-VdoQD54EiyY/X0RJk5A2CAI/AAAAAAAAFEs/dj8KU4VQEGYRbgMxW4zG-gmti0IrkYvxgCLcBGAsYHQ/s400/MB_02.jpg&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-gmK9EycDNPU/X0RJlljx8DI/AAAAAAAAFE0/gn7JQGlray0rn43yWHvByGQshelOV2ELwCLcBGAsYHQ/s2048/MB_03.jpg&quot;&gt;&lt;img alt=&quot;Buttons replaced on the mouse PCB&quot; border=&quot;0&quot; width=&quot;598&quot; data-original-height=&quot;2048&quot; data-original-width=&quot;1667&quot; src=&quot;https://1.bp.blogspot.com/-gmK9EycDNPU/X0RJlljx8DI/AAAAAAAAFE0/gn7JQGlray0rn43yWHvByGQshelOV2ELwCLcBGAsYHQ/s400/MB_03.jpg&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Finally!&lt;/h2&gt;
&lt;p&gt;When first hooking up the computer to the TV little did I expect how much damage had to be repaired to get the mouse working again. Nevertheless, following through with all these individual repairs was a good exercise in fault finding, and in staying persistent, even when the initial fix did not bring the mouse back to (full) life.&lt;/p&gt;
&lt;p&gt;In the end I can now be sure, however, that mechanically this mouse and mainboard are going to last for a long long time :)&lt;/p&gt;

  </content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=6253915237250252432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/6253915237250252432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/6253915237250252432'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2020/08/amiga-500-restoration-mouse-and.html' title='Amiga 500 Restoration: Mouse and Mainboard Maintenance'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-kHqD6j--ASE/WqgcZnfa98I/AAAAAAAADxo/kgbUm4E3dlEB2VpbrCHXZ1FqdXvpUbsqQCHMYCw/s72-c/MM_01.jpg?imgmax=1600" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-5148141878234488570</id><published>2020-04-13T16:27:00.001+02:00</published><updated>2020-04-13T16:27:11.207+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ansible"/><category scheme="http://www.blogger.com/atom/ns#" term="cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="conference"/><category scheme="http://www.blogger.com/atom/ns#" term="devops"/><category scheme="http://www.blogger.com/atom/ns#" term="haproxy"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><category scheme="http://www.blogger.com/atom/ns#" term="security"/><category scheme="http://www.blogger.com/atom/ns#" term="talk"/><title type='text'>HAProxyConf 2019: Inspect, Control, Report: HAProxy as the SRE’s Door Man</title><content type='html'>&lt;div&gt;In November 2019 I spoke at HAProxyConf in Amsterdam about how we at CenterDevice use HAProxy to protect backend servers from malicious users and log information that is vital during troubleshooting. HAProxy ACLs serve to classify unwanted traffic, including vulnerability scanners and spam bots, and then HAProxy deny rules filter traffic. Moreover I talk about how HAProxy gives us detailed logs and metrics, which we visualize using Grafana, Elasticsearch and Kibana, and how we employ DNS service discovery to automatically configure load balancing to backend servers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Conveniently the HAProxy folks have provided a full transcript of the presentation, as well as a recording. To read along, visit the &lt;a href=&quot;https://www.haproxy.com/user-spotlight-series/inspect-control-report-haproxy-as-the-sres-door-man/&quot; target=&quot;_blank&quot;&gt;HAProxy User Spotlight Series page&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/6SkhSAa7uRY&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=5148141878234488570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/5148141878234488570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/5148141878234488570'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2020/04/haproxyconf-2019-inspect-control-report.html' title='HAProxyConf 2019: Inspect, Control, Report: HAProxy as the SRE’s Door Man'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/6SkhSAa7uRY/default.jpg" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Amsterdam, Netherlands</georss:featurename><georss:point>52.3666969 4.8945398</georss:point><georss:box>24.056463063821155 -30.2617102 80.676930736178846 40.050789800000004</georss:box></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-3090346505261165233</id><published>2018-12-02T23:16:00.001+01:00</published><updated>2018-12-03T01:40:52.222+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cooking"/><category scheme="http://www.blogger.com/atom/ns#" term="fun"/><category scheme="http://www.blogger.com/atom/ns#" term="recipes"/><title type='text'>Schoko Toffee Cookies</title><content type='html'>&lt;p&gt;&lt;img title=&quot;IMG_0539.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-S_k3vA8m6h0/XARZTbO9API/AAAAAAAAEgQ/nOcylzu6S5szKRSFGEaU12nilVckNsK7gCHMYCw/s0/IMG_0539.jpg&quot; alt=&quot;Cookies!&quot; width=&quot;630&quot; height=&quot;293&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Nachdem ich zufällig über das &lt;a href=&quot;https://www.youtube.com/watch?v=dMPTxTmZDzE&quot;&gt;YouTube Video&lt;/a&gt; zum “&lt;a href=&quot;https://www.bonappetit.com/recipe/brown-butter-and-toffee-chocolate-chip-cookies&quot;&gt;Brown Butter and Toffee Chocoloate Chip Cookies&lt;/a&gt;” Rezept von “bon appétit” gestolpert war, habe ich heute die zweite Ladung Kekse produziert. Da das Rezept mit amerikanischen Maßen hantiert, und ich heute erneut leicht genervt Cups und Butter-Sticks umzurechnen hatte, lohnt es sich wahrscheinlich, das ganze einmal mit hierzulande gebräuchlichen Einheiten zu reproduzieren. Die Umrechnung ist nicht exakt so, wie man sie in den typischen Tabellen findet, sondern auf etwas &quot;glattere” Werte gerundet. Bisher sind allerdings noch keine Klagen hinsichtlich der Ergebnisse gekommen :) &lt;/p&gt;
&lt;p&gt;Das Rezept reicht für etwa 30 Cookies.&lt;/p&gt;
&lt;h2&gt;Zutaten&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;200g Brauner Zucker&lt;/li&gt;
&lt;li&gt;60g Weißer Zucker&lt;/li&gt;
&lt;li&gt;250g Mehl (Type 550)&lt;/li&gt;
&lt;li&gt;250g Butter (keine Margarine)&lt;/li&gt;
&lt;li&gt;2 Eier (M)&lt;/li&gt;
&lt;li&gt;1 Päckchen Natron (entsprechend 1 Teelöffel)&lt;/li&gt;
&lt;li&gt;1 Teelöffel Kochsalz für den Teig&lt;/li&gt;
&lt;li&gt;1-2 Esslöffel Salzflocken für die Dekoration&lt;/li&gt;
&lt;li&gt;200g dunkle Kuvertüre&lt;/li&gt;
&lt;li&gt;2 Rollen “Rolo” Karamellbonbons&lt;/li&gt;
&lt;li&gt;1 Vanilleschote oder ca. ½ Fläschchen Backaroma Vanille&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Teig vorbereiten&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Butter bräunen.&lt;/p&gt;
&lt;p&gt;Dazu die Butter in einem kleinen Topf bei mittlerer Hitze auf dem Herd schmelzen. Dabei insbesondere zu Beginn öfter umrühren, damit es nicht spritzt. Sobald die Butter aufschäumt, die Hitze etwas reduzieren und einige Zeit weiter schäumend köcheln lassen. Es setzt sich Eiweiß nach oben ab, das durch Rühren immer wieder etwas untergezogen werden sollte.&lt;/p&gt;
&lt;p&gt;Die nächsten Schritte lassen sich parallel vorbereiten. Dennoch ein Auge auf den Topf haben und gelegentlich rühren, bis die Butter nach etwa 10 Minuten anfängt am Boden einen braunen Satz zu bilden. Der Geruch ändert sich, wird nussiger und erinnert bereits an Karamell.&lt;/p&gt;
&lt;p&gt;Wenn das soweit ist, die Butter vom Herd nehmen.&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;float: none;&quot; title=&quot;IMG_0525.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-cBpsJVKl91E/XARZOQ330ZI/AAAAAAAAEgM/H2nEhmYbHYgz_4_tLF7YkKaxJYH7wYjQwCHMYCw/s0/IMG_0525.jpg&quot; alt=&quot;Braune Butter&quot; width=&quot;332&quot; height=&quot;249&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mehl, Natron und das Kochsalz vermengen.&lt;/p&gt;
&lt;p&gt;Dazu alles in eine kleine Schale oder einen Suppenteller geben und mit einem trockenen Schneebesen durchmischen.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_0513.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-rIJ_u8nwBc0/XARZUUAlfAI/AAAAAAAAEgU/g6rA8LgT6H4sGRq3LRvrA78CKRZUbFQFwCHMYCw/s0/IMG_0513.jpg&quot; alt=&quot;Mehl, Salz, Natron&quot; width=&quot;501&quot; height=&quot;224&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Die Kuvertüre auf einem großen Schneidbrett mit einem Kochmesser mit breiter Klinge zerkleinern. Dazu möglichst senkrecht jeweils etwa 0,5cm breite Streifen von dem Schokoladenblock “abschneiden”. Das Ergebnis sind Schokoladenbröckchen, die sich später gut unter den Teig mischen lassen. In einer Schüssel oder Suppenteller zur Seite stellen.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_0512.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-K0nx3ohU7Mo/XARZVpb4zCI/AAAAAAAAEgY/r048jNXg4CwHDhNObsepF21zZA8216n1gCHMYCw/s0/IMG_0512.jpg&quot; alt=&quot;Gehackte Kuvertüre&quot; width=&quot;503&quot; height=&quot;240&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Rolos aus ihrer Folie auswickeln. Jeweils 5-6 Stück auf dem Schneidbrett in einer Linie aufreihen und mit dem Kochmesser in 3-4 Scheibchen schneiden. Wiederholen, bis alle Rolos geschnitten sind. Die Stückchen &lt;em&gt;nicht&lt;/em&gt; in eine Schale, sondern auf dem Brett ausgebreitet liegen lassen, weil sie ansonsten durch das Karamell klumpig zusammenkleben.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_0515.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-MJjg6DPcVrA/XARZWyhKQPI/AAAAAAAAEgc/3CUene2oOBYCt-Xzk7fcluS96xziC6BwgCHMYCw/s0/IMG_0515.jpg&quot; alt=&quot;Roloscheibchen&quot; width=&quot;504&quot; height=&quot;235&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Die inzwischen gebräunte Butter in eine Rührschüssel gießen — eine Metallschüssel empfiehlt sich, weil die Butter daran schneller abkühlen kann. Mit einem Teigschaber oder Löffel auch den am Boden des Topfs noch anklebenden Satz mitnehmen.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Braunen und weißen Zucker in die Butter geben und mit einem Mixer vorsichtig etwas eine Minute durchmischen. Dadurch senkt sich die Temperatur der Butter bereits erheblich.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_0527.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-mlWFS-jn1GQ/XARZYFgdVFI/AAAAAAAAEgg/RZ14XMwCn84SMWg1p6JkjH5WSUfTFH9LgCHMYCw/s0/IMG_0527.jpg&quot; alt=&quot;Zucker und Butter gemischt&quot; width=&quot;504&quot; height=&quot;318&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Abwarten, bis die Mischung aus Butter und Zucker sich nur noch warm, aber nicht mehr heiß anfühlt. Andernfalls läuft man Gefahr, dass die Eier stocken.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Unter Rühren mit dem Mixer das Vanillearoma und die Eier hinzufügen und für 1 bis 2 Minuten aufschlagen. Die Masse wird dabei hellbraun und sämig.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mixer auf langsames Tempo stellen und die Mehlmischung in drei bis vier Portionen hinzufügen. Nur so lange rühren, bis das Mehl sich mit den feuchten Zutaten vermengt hat. &lt;em&gt;Nicht&lt;/em&gt; darüber hinaus aufschlagen. Der Teig dürfte zu dieser Zeit bereits merklich klebriger und fester werden, daher die restlichen Schritte zügig durchführen.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Zuerst gehackte Schokolade, dann Rolos hinzugeben und jeweils mit einem stabilen Holzlöffel unter den Teig heben. Hierbei nicht mehr den Mixer verwenden, um die Schokolade nicht weiter zu zerkleinern!&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_0528.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-dpjUXLuw3og/XARZZUgoHxI/AAAAAAAAEgk/4LcgltFIRV8mOWdiqbB-hhIo0F6xshfPwCHMYCw/s0/IMG_0528.jpg&quot; alt=&quot;Schokolade im Teig&quot; width=&quot;506&quot; height=&quot;240&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Die Schüssel mit dem fertigen Teig mit Frischhaltefolie abdecken und mindestens 30 Minuten ruhen lassen. Ich stelle ihn dazu in den Kühlschrank. Dadurch lässt er sich später besser portionieren. Laut Originalrezept kann man den Teig bis zu drei Tage im voraus zubereiten.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_0484.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-kRZRPThGuRo/XARZatj5ERI/AAAAAAAAEgo/4dY9qiZjA7MWJ2ldyFZqcWEQNFDNqLsnwCHMYCw/s0/IMG_0484.jpg&quot; alt=&quot;Fertiger Teig&quot; width=&quot;505&quot; height=&quot;250&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Portionieren und Backen&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Backofen auf 160-170°C vorheizen (Heißluft).&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_0540.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-KASsoX2B-FY/XARZlRMs-SI/AAAAAAAAEhE/gZcv8PF0A2k1QSITqVq-1RY9-7uvwsu9ACHMYCw/s0/IMG_0540.jpg&quot; alt=&quot;Bckofen vorheiten auf 160°C&quot; width=&quot;505&quot; height=&quot;218&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Backblech mit Backpapier auslegen. Falls es sich von selbst wieder aufwickeln möchte, einfach an den Längsseiten einmal beherzt zugreifen und es etwas zerknittern. Dann bleibt es auch freiwillig liegen.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Vom kühlen und festen Teig etwa 1 Esslöffel aufnehmen und zwischen den Händen zügig zu einer Kugel mit Größe eines Golf- oder Tischtennisballs formen. Mit reichlich Abstand auf dem Backpapier verteilen. Die Cookies werden beim Backen deutlich größer, daher fasst ein Backblech nur 6 Cookies.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_0530.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-bvktEIe1jNg/XARZcBEG9dI/AAAAAAAAEgs/nA_1x4Q65dAjXfb9FuPL4UrvSUp5MnUrgCHMYCw/s0/IMG_0530.jpg&quot; alt=&quot;Teig mit Löffel portionieren&quot; width=&quot;506&quot; height=&quot;252&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Beim Platzieren der Kugeln so gut es geht darauf achten, dass eventuell vorhandene größere Karamellstücke möglichst mittag nach oben gerichtet sind, damit sie mittig im fertigen Keks landen. Liegt ein solches Stück am äußeren Rand des Kekses, wird es beim Backen flüssig und der Keks hat keine gleichmäßige runde Form mehr. Schmeckt genau so gut, sieht aber nicht ganz so schön aus.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_0532.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-b6FsfaVZtWw/XARZdVUfBWI/AAAAAAAAEgw/5-Dk45Mk3Mo4HQk678hog8rN-5pI-Hd2QCHMYCw/s0/IMG_0532.jpg&quot; alt=&quot;Platzierung auf dem Backblech&quot; width=&quot;503&quot; height=&quot;258&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Über den Teigkugeln jeweils zwei Salzflocken zwischen den Fingern zerkleinern und verteilen. Wenn etwas Salz daneben fällt ist das kein Problem, da der Teig im Ofen zerfließt und dabei die umliegenden Flocken “einsammelt”.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_0533.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-LPU1V_r15-4/XARZeRswp2I/AAAAAAAAEg4/ho9QBhk52YEaYEbVfeSxa8DrwHIwWOH8ACHMYCw/s0/IMG_0533.jpg&quot; alt=&quot;Mit Salz bestreuen&quot; width=&quot;506&quot; height=&quot;267&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Kekse in den vorgeheizten Ofen schieben. Bei Heißluft lassen sich problemlos zwei Bleche gleichzeitig backen.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_0534.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-JzCJTXABqgw/XARZj_dJPfI/AAAAAAAAEg8/PqNZfPntIMEJQn7NVphwDseRB8VebtrDgCHMYCw/s0/IMG_0534.jpg&quot; alt=&quot;2 Bleche im Ofen&quot; width=&quot;504&quot; height=&quot;281&quot; border=&quot;0&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img title=&quot;IMG_0537.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-zy1E-JxCzfo/XARZmjUzdfI/AAAAAAAAEhI/qKqvPYjNmJo6_d9s7Q55x38WgQ-E_pJVgCHMYCw/s0/IMG_0537.jpg&quot; alt=&quot;Halbzeit beim Backen&quot; width=&quot;504&quot; height=&quot;248&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Je nach Ofen beträgt die Backzeit etwa 8-11 Minuten. Die Cookies sind fertig, wenn sie komplett zerlaufen sind und sich der Rand erkennbar bräunt. In der Mitte sind die Kekse dann noch ein bisschen weich. Beginnen sich am Rand Risse zu bilden, ist es höchste Zeit sie herauszunehmen. Wenn sich auf der gesamten Oberfläche Risse zeigen, ist die Temperatur wahrscheinlich zu hoch und die Cookies werden hart.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_0538.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-twXQ2E1CQOY/XARZnyeWuRI/AAAAAAAAEhM/1VwfmGpgUxUAENAE3Pf4bmBxG4vhFEFUwCHMYCw/s0/IMG_0538.jpg&quot; alt=&quot;Fertig zum Rausnehmen&quot; width=&quot;503&quot; height=&quot;287&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Kekse Aus dem Ofen nehmen und &lt;em&gt;auf dem Backblech&lt;/em&gt; noch wenigstens 10 Minuten liegen lassen. Die Kekse sind zu dieser Zeit noch viel zu weich, um bewegt zu werden.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_0492.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-8-B1GQvVGC0/XARZpCZ00oI/AAAAAAAAEhQ/ucQGTQEyeQ8WukBk18i5BIjrtfkpbgQdgCHMYCw/s0/IMG_0492.jpg&quot; alt=&quot;Abkühlen auf dem Blech&quot; width=&quot;504&quot; height=&quot;265&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nachdem sie für einige Minuten abgekühlt sind, die Kekse mit einem flachen Spatel  – vorzugsweise aus Metall – vorsichtig vom Backpapier lösen und zum endgültigen Abkühlen auf ein ebenfalls mit Backpapier ausgelegtes Kuchengitter legen. Nach jedem Keks die Vorderkante des Spatels reinigen, da hier Karamell festklebt, das das Ablösen der weiteren Kekse zunehmend schwieriger macht. Sie neigen dazu, dann daran festzukleben und zu zerreißen.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Das Backpapier braucht meiner Erfahrung nach nicht ausgewechselt werden. Es bietet sich aber an, nach jeder Ladung Kekse mit dem Spatel eventuelle Schokoladen- und Karamellreste zur Seite zu schieben.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Bon Appétit :)&lt;/em&gt;&lt;/p&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=3090346505261165233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/3090346505261165233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/3090346505261165233'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2018/12/schoko-toffee-cookies.html' title='Schoko Toffee Cookies'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-S_k3vA8m6h0/XARZTbO9API/AAAAAAAAEgQ/nOcylzu6S5szKRSFGEaU12nilVckNsK7gCHMYCw/s72-c/IMG_0539.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-2667349307484416516</id><published>2018-06-16T15:19:00.000+02:00</published><updated>2018-06-16T15:19:02.288+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apple"/><category scheme="http://www.blogger.com/atom/ns#" term="bug"/><category scheme="http://www.blogger.com/atom/ns#" term="caveat"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="devops"/><category scheme="http://www.blogger.com/atom/ns#" term="internet"/><category scheme="http://www.blogger.com/atom/ns#" term="ios"/><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="mac os x"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Add Custom HTTP Basic Auth Entries to iCloud Keychain</title><content type='html'>&lt;p&gt;While automatic filling of HTTP basic auth credentials works fine on the Mac, I have had significant trouble getting it to work on iOS devices.
This is especially unfortunate, because while on the road I sometimes need to have a look at monitoring systems that have HTTP basic authentication enabled and that use long complex passwords. Should be easy with iCloud keychain, right? Yeah... 

&lt;p&gt;
Opening the respective site in iOS Safari pops up the basic auth credentials dialog. It also shows the little key icon in the keyboard toolbar which gives access to iCloud keychain entries. However, while on the Mac the username and password fields are correctly populated, on iOS you cannot even see the respective entry.

&lt;p&gt;
Turns out, and I assume this is a bug in iOS Safari, the type of keychain entries shown is limited to &quot;Web form password&quot;. Safari on the Mac stores the entry as &quot;Internet Password&quot; though, as can be seen in the Keychain Access application on the Mac:
&lt;br /&gt;
&lt;a href=&quot;https://3.bp.blogspot.com/-vwdX8Xq6qmE/WyUG7yO7INI/AAAAAAAAEW8/QGWYLUQtAKc9X5DMP_xb2CG0Ttx4-7mXwCLcBGAs/s1600/Internet-Password.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;218&quot; data-original-width=&quot;590&quot; height=&quot;118&quot; src=&quot;https://3.bp.blogspot.com/-vwdX8Xq6qmE/WyUG7yO7INI/AAAAAAAAEW8/QGWYLUQtAKc9X5DMP_xb2CG0Ttx4-7mXwCLcBGAs/s320/Internet-Password.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;

&lt;p&gt;
Knowing that, we just need to change the type or create a new entry in the iCloud keychain. That should be easy, right? Well...

&lt;p&gt;
Turns out, there is no way to specify the type when adding a new entry via the Keychain Access app. So that does not help. On to changing the existing &quot;Internet Password&quot; item then... But also no luck there. While you &lt;em&gt;seem&lt;/em&gt; to be able to change the type in Keychain Access by just changing the value of the &quot;Kind&quot; field, this apparently has no impact on the actual type in the database underneath.

&lt;p&gt;
There is a (kludgy) way, though, that works: Edit any other &quot;Web form password&quot; that was created by Safari (when you allow it save a password for a website with a login form) and then edit the URL, username and password fields in Keychain Access. What caught me at first and almost made me think it didn&#39;t work was that you need to hit Cmd-S to save the changes made to the entry. For some reason using the &quot;Save Changes&quot; button in the window did &lt;em&gt;not&lt;/em&gt; actually do that.

&lt;p&gt;
Getting a new web form entry is also quite easy, without having to actually use a real website. I just saved this minimalistic HTML form to a local file to my local drive as &quot;dummy-password.html&quot; and then served it up to Safari with the Python SimpleHTTPServer:

&lt;pre&gt;
&amp;lt;html&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;form action=&amp;quot;http://localhost:8080/doesntmatter&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;
    &amp;lt;label for=&amp;quot;username&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Username&amp;lt;/b&amp;gt;&amp;lt;/label&amp;gt;
    &amp;lt;input name=&amp;quot;username&amp;quot; placeholder=&amp;quot;Enter Username&amp;quot; required=&amp;quot;&amp;quot; type=&amp;quot;text&amp;quot; /&amp;gt;
    &amp;lt;label for=&amp;quot;password&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Password&amp;lt;/b&amp;gt;&amp;lt;/label&amp;gt;
    &amp;lt;input name=&amp;quot;password&amp;quot; placeholder=&amp;quot;Enter Password&amp;quot; required=&amp;quot;&amp;quot; type=&amp;quot;password&amp;quot; /&amp;gt;
    &amp;lt;button type=&amp;quot;submit&amp;quot;&amp;gt;Login&amp;lt;/button&amp;gt;
  &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;

Then in the same directory where the file is saved start the HTTP server via Terminal:

&lt;p&gt;
&lt;pre&gt;$ python -m SimpleHTTPServer 8080
&lt;/pre&gt;
&lt;a href=&quot;https://1.bp.blogspot.com/-trgpmXxCBFs/WyULT33ZiII/AAAAAAAAEXU/CBDJWCbc8D0mTyITB0LTMvfX9E1WIaJWQCLcBGAs/s1600/SImeHTTPServer.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;797&quot; data-original-width=&quot;1600&quot; height=&quot;159&quot; src=&quot;https://1.bp.blogspot.com/-trgpmXxCBFs/WyULT33ZiII/AAAAAAAAEXU/CBDJWCbc8D0mTyITB0LTMvfX9E1WIaJWQCLcBGAs/s320/SImeHTTPServer.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;

&lt;p&gt;
Now, in Safari go to &lt;code&gt;http://localhost:8080/dummy-password.html&lt;/code&gt;. It will show you simple password form. Enter the credentials you want to save in the keychain and hit the Login button. Even though you will get an error message displayed, because there is nothing the data can actually be sent to, Safari will nevertheless offer to save what you just entered:

&lt;p&gt;
&lt;a href=&quot;https://1.bp.blogspot.com/-qAy2B8vIY74/WyULS5Ian5I/AAAAAAAAEXM/pkEzXn25umgVag_Eo5y5Sq8FSx-oLLbVgCPcBGAYYCw/s1600/DummyPage.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;702&quot; data-original-width=&quot;1378&quot; height=&quot;163&quot; src=&quot;https://1.bp.blogspot.com/-qAy2B8vIY74/WyULS5Ian5I/AAAAAAAAEXM/pkEzXn25umgVag_Eo5y5Sq8FSx-oLLbVgCPcBGAYYCw/s320/DummyPage.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;a href=&quot;https://3.bp.blogspot.com/-BH8zdK7CF5s/WyULUJMDh1I/AAAAAAAAEXY/QHg5kxtJ0qkKdBYRHIcNFhLwHpuxLPAjwCPcBGAYYCw/s1600/SaveToKeychain.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;702&quot; data-original-width=&quot;1378&quot; height=&quot;163&quot; src=&quot;https://3.bp.blogspot.com/-BH8zdK7CF5s/WyULUJMDh1I/AAAAAAAAEXY/QHg5kxtJ0qkKdBYRHIcNFhLwHpuxLPAjwCPcBGAYYCw/s320/SaveToKeychain.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Keychain Access will show the new entry as &quot;localhost&quot;. Double click and edit the entry. Remember to save with Cmd-S when done.
Notice that it seems to not reliably save multiple changed fields at once. I noticed that while the domain part was correctly saved, the changed port was not. So I went in again and changed the port, which finally made it stick.

&lt;p&gt;
&lt;a href=&quot;https://3.bp.blogspot.com/-saqmXnUszKA/WyULTKwILVI/AAAAAAAAEXk/C8dSlB07MxQNeI0y7MM7yf1F8fdAKnZkwCPcBGAYYCw/s1600/EditInKeychain.png&quot; imageanchor=&quot;1&quot; &gt;&lt;img border=&quot;0&quot; src=&quot;https://3.bp.blogspot.com/-saqmXnUszKA/WyULTKwILVI/AAAAAAAAEXk/C8dSlB07MxQNeI0y7MM7yf1F8fdAKnZkwCPcBGAYYCw/s320/EditInKeychain.png&quot; width=&quot;320&quot; height=&quot;227&quot; data-original-width=&quot;1292&quot; data-original-height=&quot;918&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;a href=&quot;https://4.bp.blogspot.com/-ncR1sr009SI/WyULS5bcEtI/AAAAAAAAEXc/CmZ0Sib7_PkotR5JmDFoPVxqFp1tpMyJQCPcBGAYYCw/s1600/ChangedInKeychain.png&quot; imageanchor=&quot;1&quot; &gt;&lt;img border=&quot;0&quot; src=&quot;https://4.bp.blogspot.com/-ncR1sr009SI/WyULS5bcEtI/AAAAAAAAEXc/CmZ0Sib7_PkotR5JmDFoPVxqFp1tpMyJQCPcBGAYYCw/s320/ChangedInKeychain.png&quot; width=&quot;320&quot; height=&quot;82&quot; data-original-width=&quot;754&quot; data-original-height=&quot;194&quot; /&gt;&lt;/a&gt;

&lt;p&gt;After a few seconds they entry showed up on my iPhone, too. Heureka!

&lt;p&gt;One final tidbit: The ordering in the list of credentials shown on the iPhone is a little strange. At first I could not find my new entry (which was a little longer than the one shown in the screenshot above). Turns out, Safari orders them by the second level domain, not by the subdomains. It makes sense insofar as that otherwise most sites would be sorted under &quot;w&quot; (www being a very common subdomain). But when you have something like &quot;monitoring.staging.test-domain.com&quot; you will find your entry sorted under &quot;test-domain.com&quot;, not &quot;monitoring&quot;.
</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=2667349307484416516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/2667349307484416516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/2667349307484416516'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2018/06/add-custom-http-basic-auth-entries-to.html' title='Add Custom HTTP Basic Auth Entries to iCloud Keychain'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-vwdX8Xq6qmE/WyUG7yO7INI/AAAAAAAAEW8/QGWYLUQtAKc9X5DMP_xb2CG0Ttx4-7mXwCLcBGAs/s72-c/Internet-Password.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-7149837189579998482</id><published>2018-02-05T10:00:00.001+01:00</published><updated>2020-08-25T01:31:52.526+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="amiga"/><category scheme="http://www.blogger.com/atom/ns#" term="fun"/><category scheme="http://www.blogger.com/atom/ns#" term="hardware"/><category scheme="http://www.blogger.com/atom/ns#" term="misc"/><category scheme="http://www.blogger.com/atom/ns#" term="retro"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Amiga 500 Restoration: A501 Memory Expansion</title><content type='html'>&lt;p&gt;The previous posts were mostly about cosmetics. This one is more technical, dealing with the repair and some preventative maintenance of the A501 memory expansion card. If you are curious to learn more about the retrobrighting of the computer’s case, don’t worry — I’ll get back to that at a later time.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This is the third post in a series about restoring an Amiga 500 back to its former glory. Here are all of them so far. I’ll try to remember to update this in all related entry.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2017-12-24: &lt;a href=&quot;http://www.danielschneller.com/2017/12/amiga-500-restoration.html&quot;&gt;Amiga 500 Restoration&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2018-01-05: &lt;a href=&quot;http://www.danielschneller.com/2018/01/amiga-500-restoration-retrobrighting-i.html&quot;&gt;Retrobrighting I&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2018-02-05: &lt;a href=&quot;http://www.danielschneller.com/2018/02/amiga-500-restoration-a501-memory.html&quot;&gt;A501 Memory Expansion&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2018-02-05: &lt;a href=&quot;http://www.danielschneller.com/2020/08/amiga-500-restoration-mouse-and.html&quot;&gt;Mouse and Mainboard Maintenance&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Amiga Memory — The Basics&lt;/h2&gt;
&lt;p&gt;When the Amiga 500 was first introduced, it came with 512KB of memory. That was already double the amount the original Amiga 1000 had, but still not a whole lot. Especially when developers started to get familiar with the audio and video capabilities of the machine, RAM became a limiting factor in what you could do. Merely copying a single floppy disk with its 880KB required swapping back and forth between the source and destination disks, because there was no way the contents could be loaded into a memory buffer in one go.&lt;/p&gt;
&lt;p&gt;So one of the more popular additions to any stock Amiga 500 was the &lt;a href=&quot;http://amiga.resource.cx/exp/a501&quot;&gt;A501 memory expansion card&lt;/a&gt;. There were a few original Commodore revisions, and a plethora of 3rd party clones. They all get installed in the so-called &quot;trapdoor slot&quot;, aptly named, because it is reachable by opening a cover on the underside of the computer. With it installed, the Amiga now has 1MB of RAM to work with — a way better baseline for many tasks. I will not go into detail here on the different kinds and speeds of Amiga RAM here. It is a rather complicated story because depending on several hardware and software factors memory could have different speeds and capabilities, especially when it came to the custom graphics and sound hardware. Suffice it to say though, that even the slowest possible expansion is still better than the rather anemic stock 512KB.&lt;/p&gt;
&lt;p&gt;When buying my Amiga from eBay I made sure, that it came with a memory expansion. In my case, it even was an original Commodore A501.&lt;/p&gt;
&lt;h2&gt;The Real Time Clock&lt;/h2&gt;
&lt;p&gt;In addition to the extra memory virtually all trapdoor expansion boards also add a battery-buffered real time clock. The Amiga itself — apart from very late models — does not have a clock on board. Without one, whenever the power is turned off, the computer forgets the date and time. When you switch it on the next time, it believes it&#39;s sometime early in the 1980s, or whatever the last modification timestamp of your boot disk is (which in my opinion is even worse). The A501 fixes that. It brings a clock chip, a very small amount of memory dedicated to keeping the date and time, and a rechargeable NiCd battery to supply the chip while the computer is off. When the computer is on, it gets charged up again. That way software can read the current time and date from the expansion on boot, sparing the user the tedious task of having to set it manually every time.&lt;/p&gt;
&lt;h2&gt;Batteries don’t age well...&lt;/h2&gt;
&lt;p&gt;So far so good. Unfortunately, batteries — especially NiCd ones — tend to leak when they get old. When that happens, the chemicals from inside the battery start to corrode and aggressively dissolve anything they come in contact with. Over time, this effect spreads — almost like an infection — across the memory expansion board, destroying the copper traces, solder joints, etc. Given enough time, it will creep into chips and destroy them from the inside. My original Amiga suffered this fate when its battery leaked unbeknownst to me while it was in storage. When I finally tried to use it again years later, it would not even start up to the Kickstart screen, because the damage had spread and eaten parts of the motherboard.&lt;/p&gt;
&lt;p&gt;As I remember, it looked quite similar to this poor thing. The pictures were taken from part 1 of &lt;a href=&quot;https://www.youtube.com/watch?v=WCco1sxJpNc&quot;&gt;Keith Noneya’s YouTube series&lt;/a&gt; on meticulously repairing a heavily damaged A501 board. I recommend watching it. The 2nd picture shows that the copper was completely dissolved around where the battery was connected to the board. &lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;MassiveBatteryLeak.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-F0flB9csRgA/Wm_EvpGAOAI/AAAAAAAADuk/dW-tpyPii7UCbrirSqqRYZPFz9rNfprLACHMYCw/MassiveBatteryLeak.jpg?imgmax=1600&quot; alt=&quot;MassiveBatteryLeak&quot; width=&quot;601&quot; height=&quot;354&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;DestroyedCopperLayers.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-GndkeUZNVzg/Wm_EwqcScLI/AAAAAAAADuo/mKFDeQRWvcsr8Ncv8Rex99OTpbc3e06HACHMYCw/DestroyedCopperLayers.jpg?imgmax=1600&quot; alt=&quot;DestroyedCopperLayers&quot; width=&quot;600&quot; height=&quot;374&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;So with my new arrival — which was functioning according to the eBay seller — one of the first starts I took was to remove the A501 expansion from the computer and inspect it closely for signs of battery leakage, before even turning the computer on. To do so, I had to remove the metal shield the board was encapsulated in:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501-A.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-Xj6uaNP5JIE/Wm_Ex8yQFII/AAAAAAAADus/__BEJJ5nAIQxsLlJk5DTO1iXIK5Qd8VzgCHMYCw/A501-A.jpg?imgmax=1600&quot; alt=&quot;A501 A&quot; width=&quot;601&quot; height=&quot;378&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;To do so, just with the RF shield covering the computer’s mainboard, a series of metal tabs must be opened. Unfortunately, on the A501 they are not just bent over, but also soldered shut. Obviously, Commodore didn’t want curious customers to peek inside. But with a little patience, and armed with a soldering iron, a simple desoldering pump, and some copper braid, I got it open. The pictures show the position of the tabs, and one close up.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501-C.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-SGD3DigSkcQ/Wm_Ez-pXx6I/AAAAAAAADu0/d_ITmIP9LwMHAKaKpqftYIK19EcWylrgwCHMYCw/A501-C.jpg?imgmax=1600&quot; alt=&quot;A501 C&quot; width=&quot;600&quot; height=&quot;366&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501-D.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-M8XtVzNgElw/Wm_Ey7ksMPI/AAAAAAAADuw/ydeqGiHDUYgI7EQJd6bd86LHONuU2-xXQCHMYCw/A501-D.jpg?imgmax=1600&quot; alt=&quot;A501 D&quot; width=&quot;599&quot; height=&quot;362&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you intend to put the board back into the metal case later, make sure not to lose the plastic sheet that is inside, insulating the underside of the board from the metal of the case. Without it, you would get random short circuits between the soldering joints! You can, of course, also just leave the shield off afterward. Most of the 3rd-party clones did not even have one in the first place.&lt;/p&gt;
&lt;h2&gt;Removing the Leaking Battery&lt;/h2&gt;
&lt;p&gt;Fortunately, at first glance my board was not in a bad shape, even though the battery had definitely already begun to leak. This is what one side of the contacts looked like:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501-E.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-plx1f4s2Yjc/Wm_E0_rzVUI/AAAAAAAADu4/dyzpsztA4lAzg9lWOYB_ji7pFoDgu8LWQCHMYCw/A501-E.jpg?imgmax=1600&quot; alt=&quot;A501 E&quot; width=&quot;600&quot; height=&quot;527&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The green crust is corrosion, and it has already spread down along the connectors. So it was clear, it needed to be taken off the board. To do so, I heated the soldering points on the underside of the board thought the copper braid. Carefully taking turns heating each of the joints, with a careful but firm pull on the battery from the upper side, it came off after a few cycles. &lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501-H.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-OOgO_gVXl6g/Wm_E119XOwI/AAAAAAAADu8/nSyOREHnhoUe-mqJIqm8JkIImW7vQ15lQCHMYCw/A501-H.jpg?imgmax=1600&quot; alt=&quot;A501 H&quot; width=&quot;599&quot; height=&quot;380&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Once it was out, some minor damage became obvious, but luckily nothing serious:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501-I.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-OifL1q6gGYE/Wm_E2nZrikI/AAAAAAAADvA/RQe1tm0FwEgyNocDTvaSedg5CZIsnYbMACHMYCw/A501-I.jpg?imgmax=1600&quot; alt=&quot;A501 I&quot; width=&quot;600&quot; height=&quot;450&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I cleaned the area with an old toothbrush and Q-tips. To neutralize the alkaline battery fluid residue, I used some vinegar first and cleaned everything up later with and isopropyl alcohol. I took a bit of time to make sure the through-hole and the back of the board were also cleaned. Once everything had dried up, it looked not much different from before, just the crusty bits were gone.&lt;/p&gt;
&lt;p&gt;With the battery removed, the RAM expansion worked. That was a good start. But of course, it could not keep the time while off anymore. So this needed to be fixed next.&lt;/p&gt;
&lt;h2&gt;Building a Battery Replacement Board&lt;/h2&gt;
&lt;p&gt;While in theory I could have gotten an identical or at least similar battery type, that one would be prone to leaking over time, too. So I — and others before me — wanted to use a more common and more reliable battery type as a replacement. The omnipresent &lt;a href=&quot;http://data.energizer.com/pdfs/cr2032.pdf&quot;&gt;CR2032 coin cell&lt;/a&gt; has  a nominal voltage of 3V. Even though this is less than the original battery’s 3.6V, the &lt;a href=&quot;http://www.amigawiki.de/lib/exe/fetch.php?media=de:parts:m6242b_oki_datasheet.pdf&quot;&gt;OKI clock chip’s specifications&lt;/a&gt; say it can keep working down to 2.0V. With a capacity of about 240mAh (as opposed to only 60-80mAh in the original NiCd), it could theoretically keep the clock chip powered for more than 2 or even 3 years. Good enough for my taste, especially because they are cheap and easy to get, should the need arise.&lt;/p&gt;
&lt;p&gt;However, because they are not rechargeable, precautions must be taken to keep the Amiga’s charging current away from it. Otherwise you could be in for some nasty fireworks.&lt;/p&gt;
&lt;p&gt;My first idea was to just follow &lt;a href=&quot;https://www.youtube.com/watch?v=f8_KsHcgcEQ&quot;&gt;Jan Beta’s lead&lt;/a&gt; closely and put a coin cell holder directly onto the A501. However, for a few reasons I decided to modify my approach a bit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The battery holder I bought has a very tight spring keeping the battery in place. Getting it out for replacement takes quite a bit of force, and I didn’t want to risk damage to the A501 in the process.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;In Jan’s video, you can see that the cell holder does not fit on the board too well, making it a bit difficult to get the A501 into the trap door slot. The same was true for the one I had.&lt;/li&gt;
&lt;li&gt;This being one of the first things I ever soldered in my life, I wanted to limit the risk for the A501 of me damaging accidentally to a minimum.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So I decided to build a little extra circuit on a piece of perfboard. On that, I would place the cell holder, a diode and some additional resistors, which are &lt;a href=&quot;http://www.farnell.com/datasheets/1496885.pdf&quot;&gt;recommended by a CR2032 manufacturer&lt;/a&gt;. This is what it looks like from the top:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501-J.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-1XFoAwsP6C0/Wm_E4qmuZNI/AAAAAAAADvI/tgKlCsDvd9k5t19q9zzGbD1U7tGKzsZmgCHMYCw/A501-J.jpg?imgmax=1600&quot; alt=&quot;A501 J&quot; width=&quot;354&quot; height=&quot;600&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I measured 5V charging voltage coming from the Amiga. For that, the PDF linked above recommends at least 200Ω of protective resistance. I only had 150Ω resistors at hand, so in total it is now 300Ω. This is only the second “line of defense” — usually the diode ensures that the battery does not get charged by blocking the charging current from the computer. At the bottom there is a 2 point pin header for jumper wires that then go to the A501.&lt;/p&gt;
&lt;p&gt;From below, this is what the board looks like. Notice the I flipped the previous picture, so it aligns with the bottom view.&lt;img title=&quot;A501-K.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-UI35Pl8HDMc/Wm_E5TA46dI/AAAAAAAADvM/D-phTlD1kWEy-CITXW7_hYpUJru6lcrnQCHMYCw/A501-K.jpg?imgmax=1600&quot; alt=&quot;A501 K&quot; width=&quot;548&quot; height=&quot;600&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Finally, after checking everything with the multimeter, I wrapped the edges and the bottom side of the board with insulating tape:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501-L.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-yUdNjMxvVak/Wm_E6cLKIvI/AAAAAAAADvQ/cez4EOT33js0vPjlSVi-mn5sxkX5yhWHwCHMYCw/A501-L.jpg?imgmax=1600&quot; alt=&quot;A501 L&quot; width=&quot;409&quot; height=&quot;600&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;On the A501 I needed to add pin headers, too, to allow me to hook up my little creation. Getting two single pins off of the larger piece took a few tries, because the plastic was rather brittle. But with an old fruit knife and some patience, I managed to do it.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501-M.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-Mp-9Jo9gwi0/Wm_E7ZS0W5I/AAAAAAAADvU/nsOJ10THahoAd4mmy3nvm54Sv7dGXa1fgCHMYCw/A501-M.jpg?imgmax=1600&quot; alt=&quot;A501 M&quot; width=&quot;598&quot; height=&quot;413&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501-N.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-ZSy5ObBgJdY/Wm_E8d5zmSI/AAAAAAAADvY/w0gX_avDlqs-PpTLY6mPLNTzGMJALKtRACHMYCw/A501-N.jpg?imgmax=1600&quot; alt=&quot;A501 N&quot; width=&quot;599&quot; height=&quot;411&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Putting it all together&lt;/h2&gt;
&lt;p&gt;With the A501 prepared, I could now connect the external battery holder board with two jumper wires.  &lt;/p&gt;
&lt;p&gt; &lt;img title=&quot;A501-P.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-mJqhOP6RYX0/Wm_E9G66FAI/AAAAAAAADvc/I0-JIBSx4WAw7G5zGKzvyYorfz8AUg7ggCHMYCw/A501-P.jpg?imgmax=1600&quot; alt=&quot;A501 P&quot; width=&quot;599&quot; height=&quot;377&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;And because thankfully there is quite a bit of free space in the Amiga’s case, I could easily mount the battery board right next to the trapdoor. I put a power strip on the inside of the bottom case and just stuck the board on there:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501-S.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-c3XmDISEPWc/Wm_E-OFZH-I/AAAAAAAADvg/wS1yqavdGpYTt6oZxW8Vn5pYAvnCyPY3QCHMYCw/A501-S.jpg?imgmax=1600&quot; alt=&quot;A501 S&quot; width=&quot;600&quot; height=&quot;450&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501-R.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-EWGu6yo78tU/Wm_E_KlNu9I/AAAAAAAADvk/aP0EBph0_gsJ3CRZ29lBuEoAEkJkTF9yQCHMYCw/A501-R.jpg?imgmax=1600&quot; alt=&quot;A501 R&quot; width=&quot;600&quot; height=&quot;450&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The isolating tape sticks to the Power Strip pretty tightly, so I am not worried it will easily come loose. The wires are long enough so that I can take out the A501 through the trapdoor and either disconnect them, or reach in and wiggle off the battery board. This should allow me to safely swap the battery in the future.&lt;/p&gt;
&lt;h2&gt;Battery Backed up Clock (not) found? &lt;/h2&gt;
&lt;p&gt;With all this being done, I confidently booted up a Workbench disk. Just to be greeted with this:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501-T.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-LaoEB__mc3A/Wm_FAFX1ckI/AAAAAAAADvo/c1ihyVwI2RM4YFLSWHNz5D_lCGANOTxzgCHMYCw/A501-T.jpg?imgmax=1600&quot; alt=&quot;A501 T&quot; width=&quot;597&quot; height=&quot;214&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I must admit, I was a little disappointed. Should all the careful repair work have been in vain, because in the end the clock chip had been damaged by something in the past? At this point in the Amiga’s startup sequence the &lt;code&gt;setclock load&lt;/code&gt; command is called. It tries to load the time from the expansion board. Apparently, it either could not find the clock chip at all, or at least could not read from it.&lt;/p&gt;
&lt;p&gt;I continued to boot and attempted to save the time, both using the Preferences application, as well as via a Shell and &lt;code&gt;setclock save&lt;/code&gt;. Same error message as before: &lt;em&gt;Battery Backed up Clock not found&lt;/em&gt;. &lt;/p&gt;
&lt;p&gt;Browsing through some forums I learned, that apparently the clock chip memory can get in a corrupt state if it is disconnected from the battery. For these cases, the recommended solution was to run &lt;code&gt;setclock reset&lt;/code&gt;. This, however, apparently is not supported on (my) Workbench 1.3, so no luck there.&lt;/p&gt;
&lt;p&gt;Fortunately, a little later I came across &lt;a href=&quot;http://www.amiga.org/forums/showthread.php?t=51562&quot;&gt;this thread on amiga.org&lt;/a&gt; with a link to &lt;a href=&quot;http://thomas-rapp.homepage.t-online.de/index.html&quot;&gt;Thomas Rapp’s homepage&lt;/a&gt;. In the download area, he offers a little utility called RestartClock. It comes in binary and (assembly language) source code in the &lt;a href=&quot;http://thomas-rapp.homepage.t-online.de/download/RestartClock.lha&quot;&gt;RestartClock.lha&lt;/a&gt; archive. From what I can tell, it calls the underlying OS clock reset function to bring it back into a known state. So I downloaded it onto my Mac, just to face the next problem: How do I get it onto the Amiga?&lt;/p&gt;
&lt;h2&gt;File Transfer without a cable — Back to BASIC&lt;/h2&gt;
&lt;p&gt;With the Amiga RestartClock executable on my Mac, I was stuck. I did not have a serial (null-modem) cable at hand, which I figured I could use to send the file over. But even if I did, I couldn’t find my  RS232-to-USB dongle. So I needed another way to get the program across the air-gap. At this point the prospect of ordering a cable and waiting for it to arrive did not appeal to me very much 🙂&lt;/p&gt;
&lt;p&gt;I remembered how back in the day we used to type in pages and pages of program listings from computer magazines, because only very few (expensive ones) came with floppy disks attached. Granted, most of that was done on my first computer, the Atari 800XL, but I digress… So just typing on the Amiga would probably not take very long.&lt;/p&gt;
&lt;p&gt;But not having an assembler for the Amiga at hand meant that I needed to bring over the binary version. What I did have was an &lt;em&gt;Extras 1.3&lt;/em&gt; disk with AmigaBASIC on it. I figured, if I hex-dumped the executable on the Mac, I could write a small BASIC program to output these bytes into a new file. This is the program:&lt;/p&gt;
&lt;pre&gt;
REM Set this to the path and name       &lt;img style=&quot;float: right;&quot; title=&quot;A501_U.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-xQFwpmsJTLg/WnSnR_Vak5I/AAAAAAAADwI/2oT4hpyNxasmMFO8BziMAwN1OEye0LV7wCHMYCw/A501_U.jpg?imgmax=1600&quot; alt=&quot;A501 U&quot; width=&quot;274&quot; height=&quot;240&quot; border=&quot;0&quot; /&gt;
REM of the executable to create.

filename$ = &quot;RAM:RestartClock&quot;

OPEN filename$ FOR OUTPUT AS #1
DEFINT a-z

REM Number of bytes processed so far 
n=0

REM Read from the DATA section below until
REM the magic value of 1000 is found. It 
REM marks the end of the DATA
REM Every 40 bytes print begin a new line.
REM For every byte read, print a dot.
REM Values in the DATA section go from
REM -127 to 127, because of how they were
REM dumped on a Mac. When writing them to
REM the Amiga executable, they must be
REM moved to 0-255. That&#39;s what the IF
REM statement in the middle takes care of.

READ x
WHILE x&lt;&gt;1000
  IF n MOD 40 = 0 THEN PRINT
  PRINT &quot;.&quot;;
  IF x&lt;0 THEN x=x+256
  PRINT #1,CHR$(x);
  n=n+1
  READ x
WEND
CLOSE 1
PRINT 
PRINT &quot;done writing &quot;;filename$

REM DATA section begins. This is a dump of
REM the executable file, created and
REM transcribed manually from a Mac. :D

REM 0
DATA 0,0,3,-13,0,0,0,0,0,0,0,1,0,0,0,0
DATA 0,0,0,0,0,0,0,86,0,0,3,-23,0,0,0,86
DATA 72,-25,-1,-2,65,-7,0,-36,0,0,50,60,3,-1,112,0
DATA 32,-64,81,-55,-1,-4,67,-6,0,-51,44,120,0,4,78,-82

REM 64
DATA -2,104,44,64,103,84,114,1,32,23,-80,-127,111,30,32,111
DATA 0,32,67,-6,0,-44,85,64,18,-40,81,-56,-1,-4,65,-6
DATA 0,-61,34,8,116,0,118,0,78,-82,-1,34,78,-82,-1,-60
DATA 34,0,103,14,65,-7,0,0,0,-126,36,8,118,99,78,-82

REM 128
DATA -1,-48,65,-6,0,-115,34,8,116,0,118,0,78,-82,-1,34
DATA 34,78,44,120,0,4,78,-82,-2,98,76,-33,127,-1,112,0
DATA 78,117,10,82,101,115,116,97,114,116,67,108,111,99,107,32
DATA 86,49,46,50,32,98,121,32,84,111,109,10,10,67,108,101

REM 192
DATA 97,114,105,110,103,32,99,108,111,99,107,32,114,101,103,105
DATA 115,116,101,114,115,46,10,73,102,32,99,108,111,99,107,32
DATA 105,115,32,97,108,108,32,114,105,103,104,116,32,105,116,32
DATA 119,105,108,108,32,114,117,110,32,97,103,97,105,110,32,110

REM 256
DATA 111,119,46,10,10,100,111,115,46,108,105,98,114,97,114,121
DATA 0,115,101,116,99,108,111,99,107,32,111,112,116,32,115,97
DATA 118,101,0,100,97,116,101,32,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

REM 320
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,3,-20,0,0,0,1

REM 384
DATA 0,0,0,0,0,0,0,86,0,0,0,0,0,0,3,-14
DATA 1000
&lt;/pre&gt;
&lt;p&gt;The DATA statements at the bottom contain the dumped bytes of the RestartClock executable. The hex dump was created with &lt;/p&gt;
&lt;pre&gt;hexdump -e&#39;&quot;%07.8_ad &quot; 8/1 &quot;%03d &quot; &quot; &quot; 8/1 &quot;%03d &quot; &quot; |&quot;&#39; -e&#39;16/1 &quot;%_p&quot; &quot;|\n&quot;&#39; RestartClock&lt;/pre&gt;
&lt;p&gt;on the Mac. It took me &lt;em&gt;only&lt;/em&gt; about 5 passes of double checking them all after the initial entry. And boy, had I forgotten how slow and unwieldy AmigaBASIC is! I figure that the roundabout two hours I spent on this were evenly split between reading up on the Amiga BASIC syntax and functions, finding and fixing mistakes in the hex dump, and waiting for the &lt;em&gt;painfully&lt;/em&gt; slow scrolling in listing window. That’s why with my original Amiga back in the day I gave up on the thing, as I recalled. If memory serves, I moved on to &quot;GFA Basic&quot; back then, which I remember as way more responsive.&lt;/p&gt;
&lt;p&gt;Anyway, when run, the program reads the bytes from the data area one by one, and adds them to a new file in the RAM disk, outputting some progress along the way. You can see how long that takes for a mere 400 bytes. The first attempts were way slower still, because they contained more on-screen output.&lt;/p&gt;
&lt;p&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/01tQ_bDDXAg?rel=0&quot; width=&quot;560&quot; height=&quot;315&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;I crossed my fingers and ran the newly created command in a shell:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501_W.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-2r62ZOiqpao/WnjEfb9PuQI/AAAAAAAADwc/0Dfo3ndBXKMwnZ_zjHyKEtaMJM0YdPJQgCHMYCw/A501_W.jpg?imgmax=1600&quot; alt=&quot;A501 W&quot; width=&quot;500&quot; height=&quot;261&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It looked promising, so I then set the date and time in Preferences, saved, and powered off the computer for a good 2 minutes. I then booted into Workbench again, and what do you know:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;A501_X.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-5jwDJr6pIuA/WnjEgCfQW-I/AAAAAAAADwg/tMWFUWn-Kdox1wAY7aBb13LSb0srktSOACHMYCw/A501_X.jpg?imgmax=1600&quot; alt=&quot;A501 X&quot; width=&quot;600&quot; height=&quot;281&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It worked! I was lucky enough to have a Workbench disk &quot;fresh&quot; enough to not barf at the year 2018. Evidently there are different versions of software and hardware around, exhibiting different more or less annoying bugs related to date and time. I found this “&lt;a href=&quot;http://www.aug.org.au/augmag/WBOCT98.pdf&quot;&gt;Workbench (Issue 139) [PDF]&lt;/a&gt;” magazine from 1998 which has few interesting details on this.&lt;/p&gt;
&lt;h2&gt;Final Remarks&lt;/h2&gt;
&lt;p&gt;I certainly could have waited for the new RS232-USB-dongle (which has arrived by now, of course). But I really wanted to solve this right then and there, and in retrospect I am glad I did. The whole procedure reminded me, how something that seems trivial – especially by today’s standards – can require some creative thinking. Still, I wouldn&#39;t want to go back to regularly transcribing pages and pages of listings from magazines anymore.&lt;/p&gt;
&lt;p&gt;Should you go through the same procedure, I highly recommend saving the generated RestartClock program on the Workbench disk (or somewhere other than just RAM disk). When I had to disconnect the battery from the A501 again for some other repairs, the clock was corrupted and needed to be restarted. At that point I was very happy not to have to go through the hex-dump again 😁.&lt;/p&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=7149837189579998482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/7149837189579998482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/7149837189579998482'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2018/02/amiga-500-restoration-a501-memory.html' title='Amiga 500 Restoration: A501 Memory Expansion'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-F0flB9csRgA/Wm_EvpGAOAI/AAAAAAAADuk/dW-tpyPii7UCbrirSqqRYZPFz9rNfprLACHMYCw/s72-c/MassiveBatteryLeak.jpg?imgmax=1600" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-359511319245725293</id><published>2018-01-05T00:21:00.001+01:00</published><updated>2020-08-25T01:32:20.739+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="amiga"/><category scheme="http://www.blogger.com/atom/ns#" term="fun"/><category scheme="http://www.blogger.com/atom/ns#" term="hardware"/><category scheme="http://www.blogger.com/atom/ns#" term="misc"/><category scheme="http://www.blogger.com/atom/ns#" term="retro"/><title type='text'>Amiga 500 Restoration: Retrobrighting I</title><content type='html'>&lt;p&gt;In &lt;a href=&quot;/2017/12/amiga-500-restoration.html&quot;&gt;part one&lt;/a&gt; I described how I got and disassembled an Amiga 500 for a thorough cleaning. This part is about my first attempts to restore the grey/beige color the case had originally had, but over time had turned it an ugly yellow.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This is the second post in a series about restoring an Amiga 500 back to its former glory. Here are all of them so far. I’ll try to remember to update this in all related entry.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2017-12-24: &lt;a href=&quot;http://www.danielschneller.com/2017/12/amiga-500-restoration.html&quot;&gt;Amiga 500 Restoration&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2018-01-05: &lt;a href=&quot;http://www.danielschneller.com/2018/01/amiga-500-restoration-retrobrighting-i.html&quot;&gt;Retrobrighting I&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2018-02-05: &lt;a href=&quot;http://www.danielschneller.com/2018/02/amiga-500-restoration-a501-memory.html&quot;&gt;A501 Memory Expansion&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2018-02-05: &lt;a href=&quot;http://www.danielschneller.com/2020/08/amiga-500-restoration-mouse-and.html&quot;&gt;Mouse and Mainboard Maintenance&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;First Things First&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Disclaimer 1: It has been quite a while since my chemistry lessons in school, and even though reading up on the details, combined with what I still remember, left me with some confidence of having roughly understood what’s going on, what follows might be woefully wrong, at is guaranteed to be imprecise. So by no means should you use this as the basis for any upcoming exams &lt;/em&gt;😉&lt;em&gt;. Also, I understand the links provided are not scientific publications, so they themselves might be wrong. If you know better (and can point me to the resources to prove it), I would be happy to hear from you.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Disclaimer 2: Hydrogen-peroxide and products based on it need to be handled with great care. Always wear rubber gloves and, even more important, protective glasses when handling it. I know this might sound like an exaggeration, but I am serious: &lt;/em&gt;&lt;/strong&gt;&lt;strong&gt;&lt;em&gt;H&lt;sub&gt;2&lt;/sub&gt;O&lt;sub&gt;2&lt;/sub&gt;&lt;/em&gt;&lt;em&gt; is acidic! Getting it on your skin will cause discoloration and burns. Here’s a picture of my arm where some of the stuff got stuck without me noticing. &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;img title=&quot;Hydrogen-Peroxide Burns on my skin after just a few minutes of accidental exposue&quot; src=&quot;https://lh3.googleusercontent.com/-R056z3ZFJg8/Wkgu1JwVR9I/AAAAAAAADr0/6f5K4BjVcHI-vQLBQzTCyFy0eW2BGj5zACHMYCw/IMG_4858.jpg?imgmax=1600&quot; alt=&quot;Hydrogen-Peroxide Burns on my skin after just a few minutes of accidental exposue&quot; width=&quot;499&quot; height=&quot;257&quot; border=&quot;0&quot; /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;After what could only have been a very few minutes, I felt a stinging pain and could see two burnt spots. It took  quite a while for the pain to subside even after washing off the peroxide. It goes through your skin and starts to make gas bubbles underneath. So if by accident you get some on your skin, quickly rinse if off with clear water!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Getting this stuff in your eyes can cause irreparable damage and even blindness! You have been warned!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Why does plastic turn yellow?&lt;/h2&gt;
&lt;p&gt;There are quite a few theories out there why the plastic many older electronic devices — including the Amiga — were made of turn yellow over time. Not all of them do, some keep their color well, while others look quite grotesque. The one I bought from eBay looked like this when I got it (and yes, the photo is rather close to what it looked like in person).&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Amiga 500, yellowed plastic, straight from ebay&quot; src=&quot;https://lh3.googleusercontent.com/-Y2IzrVRTJeE/Wj9vsl0LOjI/AAAAAAAADno/AqQs6nNAxbsaM4JZBgXmyRbsKJVeP82XwCHMYCw/fullsizeoutput_9007.jpeg?imgmax=1600&quot; alt=&quot;Amiga 500, yellowed plastic, straight from ebay&quot; width=&quot;600&quot; height=&quot;450&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;As far as I could &lt;a href=&quot;https://chemistry.stackexchange.com/questions/74618/what-makes-abs-plastic-turn-yellow&quot;&gt;figure it out&lt;/a&gt;, external influences like heat and UV light gradually break up molecular bonds in the polymers comprising the plastic, leaving free radicals. The presence of bromide flame retardants, often cited as the main culprit, may or may not play a role in this process, but if my layman’s reading of &lt;a href=&quot;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4320144/&quot;&gt;this paper&lt;/a&gt; is correct, plastic can change its color regardless. In any case, the changed molecular structure changes the physical properties in several ways. For one, the material can become more brittle, but also, the wavelengths of the light it reflects shift. It seems, free radicals like yellow best, so that’s what they tend to reflect most 😉 (and yes, that smiley is there on purpose).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fortunately&lt;/em&gt;, these chemicals processes can apparently be at least partially reversed by re-adding hydrogen for the free radicals to bond with. &lt;em&gt;Unfortunately&lt;/em&gt; just soaking the plastic in water won’t help, because the hydrogen in water is very happily bonded (with oxygen) already. It’s &lt;a href=&quot;https://chemistry.stackexchange.com/a/24742&quot;&gt;not as simple&lt;/a&gt; as one might expect, but in the end, there are always two hydrogen atoms, and one oxygen atom, sticking together; hence: H&lt;sub&gt;2&lt;/sub&gt;O). What&#39;s needed is “bachelor” hydrogen, ready to enter a bond with the yellow-loving free radicals.&lt;/p&gt;
&lt;p&gt;A rather cheap transport vessel for extra hydrogen is hydrogen-peroxide (H&lt;sub&gt;2&lt;/sub&gt;O&lt;sub&gt;2&lt;/sub&gt;). While it looks similar to regular water, it is less stable and — if pure — &lt;a href=&quot;https://en.wikipedia.org/wiki/Hydrogen_peroxide#Decomposition&quot;&gt;usually decomposes into regular water&lt;/a&gt; over time. Given the chance, however, the additional hydrogen may also decide to connect with the free radicals in the plastic, bringing it closer to its original structure, and thereby color.&lt;/p&gt;
&lt;p&gt;So put in very simple terms, getting plastic de-yellowed should work by just soaking it in hydrogen-peroxide, ideally adding some energy to encourage the chemical to split off the extra hydrogen to facilitate the reaction. &lt;/p&gt;
&lt;h3&gt;A Bucket full of H&lt;sub&gt;2&lt;/sub&gt;O&lt;sub&gt;2&lt;/sub&gt;?&lt;/h3&gt;
&lt;p&gt;Turns out, an Amiga’s case is surprisingly big, meaning that if I wanted to submerge it in hydrogen-peroxide, I would need a large enough container to put the top and bottom cases in, and also quit a bit of hydrogen-peroxide. This would be the ideal solution, because it would ensure the whole surface being in contact with the chemical, hopefully leading to a very even discoloration.&lt;/p&gt;
&lt;p&gt;It certainly can be done (see &lt;a href=&quot;https://youtu.be/qZYbchvSUDY?t=975&quot;&gt;this video&lt;/a&gt; on YouTube), but for my first attempts it didn’t seem very practical. Not only did I  not have a suitable container at hand, but (in contrast to &lt;a href=&quot;https://www.youtube.com/channel/UC8uT9cgJorJPWu7ITLGo9Ww&quot;&gt;The 8-Bit Guy&lt;/a&gt; whose video it is) I also don’t live in Texas with an abundance of sunlight. Instead, live in somewhat cloudy Germany. Trying this shortly before Christmas also wasn’t exactly the ideal time of the year in terms of daylight hours.&lt;/p&gt;
&lt;p&gt;So I postponed the liquid hydrogen-peroxide plan for a little while.&lt;/p&gt;
&lt;h3&gt;First tests: Bleaching the power supply with a standard hair bleaching product&lt;/h3&gt;
&lt;p&gt;I decided to perform the first bleaching experiments on a test object that is typically not the focus of a lot of attention: The power brick. I figured that if something went wrong and the results weren’t good, it would be the part I would least be annoyed by if it didn’t look perfect. It’s usually hidden under the table anyway.&lt;/p&gt;
&lt;p&gt;So first of all, I took it apart (turns out, it was quite dirty on the inside, so it was also a welcome chance to clean it) to get the plastic parts ready.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Amiga Power Brick Top and Bottom Case, disassembled, yellow, on plastic wrap foil before bleaching&quot; src=&quot;https://lh3.googleusercontent.com/-qtZW32k4UGY/WkgumKhGaaI/AAAAAAAADq0/X51iTt27B2UkMFkMKFmSDrq3sV_r8pyLgCHMYCw/IMG_4658.jpg?imgmax=1600&quot; alt=&quot;Amiga Power Brick Top and Bottom Case, disassembled, yellow, on plastic wrap foil before bleaching&quot; width=&quot;500&quot; height=&quot;301&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The underside was considerably less yellow than the top, supporting the theory that exposure to light (or lack thereof) plays an important role in the chemical reactions described above.&lt;/p&gt;
&lt;p&gt;I bought the strongest hair bleaching product I could find in a local store. Even though the brick would have fit in a large pot and could have been submerged, I decided to try out this equivalent of the “Salon Creme” used in the 8-Bit Guy video.&lt;/p&gt;
&lt;p&gt;I don’t have the packaging anymore, but as far as I remember it did not specify the exact concentration of hydrogen-peroxide anyway. I figured that even the strongest one would probably not exceed the product shown in the video. I was a little concerned, because the list of ingredients contained some additional stuff, including ammonia, perfume and others, but that’s exactly why I picked the power supply as a “guinea pig”. One box of this product sells for around 3€ or 4€ , so it wasn’t a big investment either.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Schwarzkopf commercial hair bleaching product. Amiga Power Brick case part, yellowed, laying next to it.&quot; src=&quot;https://lh3.googleusercontent.com/-iT-TTxNmZLQ/WkgumwkCTrI/AAAAAAAADq4/lal41W6pvn45YB-pu0zHwluvZfmkmPUlgCHMYCw/IMG_4657.jpg?imgmax=1600&quot; alt=&quot;Schwarzkopf commercial hair bleaching product. Amiga Power Brick case part, yellowed, laying next to it.&quot; width=&quot;499&quot; height=&quot;375&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I mixed the ingredients as per the instructions, producing a white creme that didn’t even smell too bad. I then laid out the case parts on plastic wrap and started applying the creme generously. Once done, I wrapped the plastic film around to prevent the mixture from drying out.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Hair bleaching creme, being applied on the power brick case with a brush. Gloved hands.&quot; src=&quot;https://lh3.googleusercontent.com/-ut4hF5oEMXE/WkguoAaUfSI/AAAAAAAADq8/ul9Mq4wLhasSt7edPbBwMf-e6iyjB_fjwCHMYCw/IMG_4667.jpg?imgmax=1600&quot; alt=&quot;Hair bleaching creme, being applied on the power brick case with a brush. Gloved hands.&quot; width=&quot;499&quot; height=&quot;372&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Hair bleaching creme, being applied on the power brick case with a brush. Close up.&quot; src=&quot;https://lh3.googleusercontent.com/-tHhNr_rHdq8/Wkguoyd_hwI/AAAAAAAADrA/wIQrM2BiM-obqclv-RsxDOgdoLRIQK1fwCHMYCw/IMG_4662.jpg?imgmax=1600&quot; alt=&quot;Hair bleaching creme, being applied on the power brick case with a brush. Close up.&quot; width=&quot;500&quot; height=&quot;375&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Power brick case, with hair bleaching creme applied, being wrapped up in plastic. Close up.&quot; src=&quot;https://lh3.googleusercontent.com/-RW7nnbRaQqU/Wkgup9V2ItI/AAAAAAAADrE/4Crf1r-dfhwKL3AwJ_IkjdRrO8185RJSgCHMYCw/IMG_4663.jpg?imgmax=1600&quot; alt=&quot;Power brick case, with hair bleaching creme applied, being wrapped up in plastic. Close up.&quot; width=&quot;499&quot; height=&quot;372&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Top and bottom power brick case parts, with bleaching creme, fully wrapped.&quot; src=&quot;https://lh3.googleusercontent.com/-cA9g_KQ6d6Y/Wkguq6KB0zI/AAAAAAAADrI/WyC9UW7eUOwLPV0uPnakF05RkmOZ68JjQCHMYCw/IMG_4671.jpg?imgmax=1600&quot; alt=&quot;Top and bottom power brick case parts, with bleaching creme, fully wrapped.&quot; width=&quot;500&quot; height=&quot;375&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For the very first attempt, I just let it sit over night, without any light or heat added. I wanted to find out, how much of a reaction I would get without any additional energy. After about 12 hours I unwrapped and rinsed both parts to see… nothing. At least there was no obviously discernible difference between before and after. I won’t rule out that letting this sit for much longer would have produced &lt;em&gt;some&lt;/em&gt; change, but I was not patient enough to try. So instead, I repeated the whole thing the next day — with a fresh batch of the white creme.&lt;/p&gt;
&lt;p&gt;This time, once both parts were covered and wrapped, I put them into the oven, heated to around 50°C. I deemed this a safe temperature, because I figured a power supply could reach it by itself on a summer day. Apparently my oven is not designed to maintain such a low temperature constantly. I had put in a thermometer next to the plastic parts. Turns out, the actual temperature and the one displayed by the oven itself were quite different. It only reached 50°C on average when the knob was dialed to around 65°C, oscillating by about 10°C in either direction.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Power brick case parts, bleaching creme applied, wrapped in plastic. In the oven, thermometer showing circa 55°C. Trapdoor cover.&quot; src=&quot;https://lh3.googleusercontent.com/-88sMeAE0fuM/WkgurzTtohI/AAAAAAAADrM/gOc1X7AWAj4YxU8tlF0eG32-8hI57dqTACHMYCw/IMG_4690.jpg?imgmax=1600&quot; alt=&quot;Power brick case parts, bleaching creme applied, wrapped in plastic. In the oven, thermometer showing circa 55°C. Trapdoor cover.&quot; width=&quot;500&quot; height=&quot;375&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The part in the middle is the trapdoor cover for the memory expansion port. It was put in for comparison. It showed almost no yellowing in the first place, and I wanted to see what effect the bleaching would have on original color plastic.&lt;/p&gt;
&lt;p&gt;I left it in there for a few hours, regularly checking the temperature and looking for obvious changes. Very quickly the creme increased in volume, getting foamy — similar to shaving foam. Over time, bigger gas bubbles formed. After about 4 hours the bubbles started to disappear. It looked as if the remainder of the creme was beginning to dry out, turning into a something I can only describe as “crisp looking&quot;. At that point I decided to take the parts out of the oven.&lt;/p&gt;
&lt;p&gt;Even through the plastic film, I could feel that the creme had indeed begun to turn into tiny crystals. I assume, the plastic wrap was not a good enough seal against the constant stream of warm air. So the water in there eventually evaporated. It’s not easy to see in the photos, but I tried highlighting the effect:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Close up of bleaching creme crystals.&quot; src=&quot;https://lh3.googleusercontent.com/-48yYADy14YU/WkgusiaFBsI/AAAAAAAADrQ/aUHl3iG77rce5ArqUWuAKg1CIx-3oGsgACHMYCw/IMG_4692.jpg?imgmax=1600&quot; alt=&quot;Close up of bleaching creme crystals.&quot; width=&quot;499&quot; height=&quot;375&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I rinsed everything with warm water, using a brush to remove all sticky residue.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Rinsing the power brick top case, using a brush to remove residue.&quot; src=&quot;https://lh3.googleusercontent.com/-jXC9AoExlk0/Wkgut7BWy-I/AAAAAAAADrU/zulOLklnIgMwjzI60Br3ycO2oAp6GM3FgCHMYCw/IMG_4698.jpg?imgmax=1600&quot; alt=&quot;Rinsing the power brick top case, using a brush to remove residue.&quot; width=&quot;499&quot; height=&quot;388&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;(Alert readers might have noticed that I am not wearing gloves here. This is because I had forgotten to take a photo earlier and posed again, but only after having thrown the gloves away already).&lt;/p&gt;
&lt;p&gt;Even before the parts had completely dried, the effect was already obvious. I had put a small piece of scotch tape on the side of one of the pieces to make the before-and-after comparison easier. &lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Power brick after bleaching. Scotch tape on a small patch for reference, still showing the previous more yellow color.&quot; src=&quot;https://lh3.googleusercontent.com/-terGfj5twwo/WkguvMHzKdI/AAAAAAAADrY/cVK1H0EFosAbz3Lm4LTHiUaFI8fIPqozQCHMYCw/IMG_4700.jpg?imgmax=1600&quot; alt=&quot;Power brick after bleaching. Scotch tape on a small patch for reference, still showing the previous more yellow color.&quot; width=&quot;499&quot; height=&quot;399&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;So the bleaching had obviously worked, which can be seen even better in the next photo, with the mouse as a reference. However, the creme drying out had the ugly side effect of getting an uneven, quite blotchy overall appearance. &lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Power Brick after bleaching, next to unbleached mouse for color reference.&quot; src=&quot;https://lh3.googleusercontent.com/-tnUaEp8yKaw/WkguwV1c3KI/AAAAAAAADrc/9qcyn4_UlkQTX8fwrjpA4kLO8Lr5qHh9ACHMYCw/IMG_4701.jpg?imgmax=1600&quot; alt=&quot;Power Brick after bleaching, next to unbleached mouse for color reference.&quot; width=&quot;500&quot; height=&quot;375&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Lessons learned (so far)&lt;/h3&gt;
&lt;p&gt;After the two attempts with the hair bleaching creme, I came to the following conclusions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There is obviously enough hydrogen-peroxide in the cheap hair product to counteract the yellowing.&lt;/li&gt;
&lt;li&gt;Additional energy is needed to achieve an effect in a more reasonable amount of time.&lt;/li&gt;
&lt;li&gt;UV light is not the only source of said energy — moderate heat works, too.&lt;/li&gt;
&lt;li&gt;Letting the hair creme dry produces crystalline particles. That causes ugly spots and an overall uneven result. Some of that might also be attributed to uneven application of the creme.&lt;/li&gt;
&lt;li&gt;The trap door cover hardly changed at all, so the effect on “original” color plastic appears negligible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In general I&#39;d call this first try a partial success, but there is clearly room for improvement. It was a good idea not to start top case right away. I would have considered a result like this a degradation, not an improvement. So more experimentation was needed. I decided the hair bleaching product was not very well suited for my needs. I don’t know if the same would happen with the all such products, but at least this one&#39;s formula seems to produce the dry crystals.&lt;/p&gt;
&lt;h3&gt;Bleaching the mouse — A &lt;del&gt;bucket&lt;/del&gt; pan full of H&lt;sub&gt;2&lt;/sub&gt;O&lt;sub&gt;2&lt;/sub&gt;!&lt;/h3&gt;
&lt;p&gt;I decided to let the power supply alone for the time being. Instead I replicated the 8-Bit Guy’s setup with liquid hydrogen-peroxide solution on the stove top to “cook” the key caps and the mouse, which I had taken apart and cleaned in the meantime, too.&lt;/p&gt;
&lt;p&gt;Some googling suggested hat hydrogen-peroxide solution could be bought in pharmacies in concentrations between 3% and 30%. Apparently most of the stronger hair bleaching products contain around 12%.  &lt;/p&gt;
&lt;p&gt;I went to three different pharmacies. In the first two, without only very vague explanations, they offered maximum concentrations of 3% and 6% respectively. Only in the third one did they explain to me, that around the beginning of 2017 there was a change in regulations, requiring sellers to document who bought the stuff and for what purpose, for anything 12% and higher. To avoid the paper work, most pharmacies just stopped selling these concentrations to anyone but business customers. I have no idea why they didn’t just tell me in the first two, but even if they had had it on sale, the prices would have ranged somewhere between outrageous and ridiculous (30€ per liter, at 6%)!&lt;/p&gt;
&lt;p&gt;Fortunately I found an online shop that conveniently offered a “six-pack” of 1 liter bottles of 11,9% 😏 H&lt;sub&gt;2&lt;/sub&gt;O&lt;sub&gt;2&lt;/sub&gt; solution for a very reasonable total price of 20€, including shipping.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;H2O2 bottle.&quot; src=&quot;https://lh3.googleusercontent.com/-tgysFfe1f0U/Wkgux1Tlz9I/AAAAAAAADrk/nM2gMyV0q68IvafKr2m-o7tXeUexKtQqQCHMYCw/IMG_4739.jpg?imgmax=1600&quot; alt=&quot;H2O2 bottle.&quot; width=&quot;226&quot; height=&quot;500&quot; /&gt; &lt;/p&gt;
&lt;p&gt;I decided to start with the mouse, using the same temperature as for the power brick, just this time completely submerging the plastic in the solution on the stove top.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Mouse shell in H2O2 solution, in a pan. Thermometer showing circa 60°C.&quot; src=&quot;https://lh3.googleusercontent.com/-Fjrnn1rNAZE/WkguzZ4UaDI/AAAAAAAADrs/Ln2YAKwFknwvdw8JbcyCkftrFkI5mh6bgCHMYCw/IMG_4743.jpg?imgmax=1600&quot; alt=&quot;Mouse shell in H2O2 solution, in a pan. Thermometer showing circa 60°C.&quot; width=&quot;500&quot; height=&quot;375&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Controlling the temperature turned out to be even more challenging. To prevent the solution (and the plastic along with it) from overheating, I had to turn the stove to its lowest setting and move the pot way off-centre, so that only a small portion of it was actually receiving any heat from below.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Pan on stove top, moved way off center for less heat exposure.&quot; src=&quot;https://lh3.googleusercontent.com/-EcqPdMdHNAo/Wkgu0ZPX1DI/AAAAAAAADrw/0Y4XlKRuEzE8uVI4GpR0D3_ROiiy9GjXACHMYCw/IMG_4741.jpg?imgmax=1600&quot; alt=&quot;Pan on stove top, moved way off center for less heat exposure.&quot; width=&quot;499&quot; height=&quot;370&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;With this arrangement — the extractor hood above set to full, and the kitchen window wide open — I waited, checking the temperature and the plastic color regularly. After the first hour, virtually nothing had happened, but little bubbles forming. However, by the time about two and a half hours had passed, the yellowing started to disappear visibly.&lt;/p&gt;
&lt;p&gt;After 4 hours the plastic had changed its color enough for me to consider it “original” again, so I turned off the stove and took the mouse out of the hot liquid with some pliers. I rinsed all parts with lots of warm water. &lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Mouse top shell being rinsed, held by kitchen pliers. Underside view.&quot; src=&quot;https://lh3.googleusercontent.com/-lFF72mDkHYE/Wk6BM-Am1EI/AAAAAAAADsY/M7q9u0K9cC8zQMfb05B2mDe1T9-cqQ2QwCHMYCw/IMG_4754.jpg?imgmax=1600&quot; alt=&quot;Mouse top shell being rinsed, held by kitchen pliers. Underside view.&quot; width=&quot;500&quot; height=&quot;376&quot; border=&quot;0&quot; /&gt;&lt;img title=&quot;IMG_4756.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-3TLmJMuVJMU/Wk6BNxjLznI/AAAAAAAADsc/T_dQcQy-cX8j_lpACqB15XVNzzz0jZRfwCHMYCw/IMG_4756.jpg?imgmax=1600&quot; alt=&quot;Mouse top shell being rinsed, held by kitchen pliers. Top view.&quot; width=&quot;500&quot; height=&quot;375&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Finally, see this before and after comparison. The first picture was taken right before the procedure began, second one right after rinsing. There is some moisture left between the mouse buttons, so it looks a little darker there in the photo — it actually isn’t.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Mouse shell parts, before bleaching, on white paper for reference.&quot; src=&quot;https://lh3.googleusercontent.com/-NZeG7CGT-G4/Wk6BQyRROvI/AAAAAAAADso/YzVPPuxCkdEA6rySIZ_PjWY4qeBlz3gggCHMYCw/IMG_4738.jpg?imgmax=1600&quot; alt=&quot;Mouse shell parts, before bleaching, on white paper for reference.&quot; width=&quot;499&quot; height=&quot;353&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Mouse shell parts, right after bleaching, on white paper for reference.&quot; src=&quot;https://lh3.googleusercontent.com/-C9RuzeRGVP0/Wk6BO7y3-3I/AAAAAAAADsg/_hHIpwcLyuUEABJikT4VHw7bG4QfEbjugCHMYCw/IMG_4761.jpg?imgmax=1600&quot; alt=&quot;Mouse shell parts, right after bleaching, on white paper for reference.&quot; width=&quot;499&quot; height=&quot;353&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The improvement was pretty exciting and got it very close to what I would consider original color. Turns out, though, that even after taking the parts out of the solution, rinsing and drying, the bleaching reaction did not stop immediately. When i looked the next morning, the mouse had become quite a bit lighter still, even lighter than ideally I would have wanted. It does not look bad, it is just not as beige as the Amiga originally was:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Mouse shell. Upper case. 12 hours after bleaching, much brighter. On white paper for reference.&quot; src=&quot;https://lh3.googleusercontent.com/-IvD0WFhWfzU/Wk6BPzS06tI/AAAAAAAADsk/sFK4yDh_cvYYDudcDs58qJw9IezAxoQcACHMYCw/IMG_5120.jpg?imgmax=1600&quot; alt=&quot;Mouse shell. Upper case. 12 hours after bleaching, much brighter. On white paper for reference.&quot; width=&quot;499&quot; height=&quot;353&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;More lessons learned&lt;/h3&gt;
&lt;p&gt;With the mouse done, here are a few more take aways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The submersion method yields very even effects — just as expected.&lt;/li&gt;
&lt;li&gt;Pick as small a pot as you can — you’ll need less liquid to cover the parts.&lt;/li&gt;
&lt;li&gt;You want really good ventilation. Standing right next to the pot for a while made my eyes burn. My wife complained about her throat getting sore.&lt;/li&gt;
&lt;li&gt;Controlling the temperature is not trivial. This is a consequence of the small amount of liquid and the comparatively low desired temperature (in contrast to what the stove is designed for: &lt;em&gt;cook&lt;/em&gt; food) Hence, a thermometer is a must have.&lt;/li&gt;
&lt;li&gt;The bleaching continues for quite a bit, even when the plastic is taken out of the solution. Factor that in and take parts out sooner rather than later.&lt;/li&gt;
&lt;li&gt;Don’t reach into the hot solution with your fingers 😉&lt;/li&gt;
&lt;li&gt;Rinse off with warm, not cold, water. I am not sure this is really necessary, but I figured it would be better than exposing the plastic to a temperature shock.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Armed with this new knowledge, I was confident it would also work for the key caps.&lt;/p&gt;
&lt;h3&gt;Bleaching the key caps&lt;/h3&gt;
&lt;p&gt;As laid out in part one, the key caps had already undergone a session of soaking and scrubbing in warm soap water. So they were ready for their bleaching bath.&lt;/p&gt;
&lt;p&gt;The setup was exactly the same as for the mouse. Just enough hydrogen-peroxide solution to cover them all. However, due their shape and size, the key caps tended to float, so at least those closer to the surface were not fully covered all the time. To ensure they would still get the most even treatment possible, I used kitchen pliers to turn them all upside down.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Key caps in hydrogen peroxide solution, in a pan. Face down. Small bubbles.&quot; src=&quot;https://lh3.googleusercontent.com/-9OlATTIVLAM/Wk6BSuspUZI/AAAAAAAADss/x_w_48p973w3zHhTzcjJUGtTNv2ex3F3ACHMYCw/IMG_4770.jpg?imgmax=1600&quot; alt=&quot;Key caps in hydrogen peroxide solution, in a pan. Face down. Small bubbles.&quot; width=&quot;500&quot; height=&quot;375&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Notice that I removed the metal braces from the larger keys — I did not want to risk corroding them. Some keys would turn around on their own, especially with the little bubbles forming, so I needed to slightly shake the the pot every once in a while to get rid of them and then ensure all caps were face-down again.&lt;/p&gt;
&lt;p&gt;With the experience gained from bleaching the mouse I took the keys out about 45 minutes earlier, after just a little more than three hours.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Key caps being poured into a sieve, for rinsing.&quot; src=&quot;https://lh3.googleusercontent.com/-GiFD3W3vxNc/Wk6BTj4qy5I/AAAAAAAADsw/HUaI8nmfnQUjiPAUgIigq5o7fXnpwjjzgCHMYCw/IMG_4774.jpg?imgmax=1600&quot; alt=&quot;Key caps being poured into a sieve, for rinsing.&quot; width=&quot;500&quot; height=&quot;428&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In the pictures you can clearly see the special keys having a nice contrast with the letters and numbers. Here are the before-and-after shots, In the top right corner you see the floppy drive eject button, which I threw in, too.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Yellowed Key Caps, before bleaching. Laid out on white paper for reference.&quot; src=&quot;https://lh3.googleusercontent.com/-NNeyEMhjilg/Wk6BUhUj3UI/AAAAAAAADs0/k5YRH27BxwIHXYiS_YFB7ep8tN5d6tVdACHMYCw/IMG_4765.jpg?imgmax=1600&quot; alt=&quot;Yellowed Key Caps, before bleaching. Laid out on white paper for reference.&quot; width=&quot;500&quot; height=&quot;345&quot; border=&quot;0&quot; /&gt;&lt;img title=&quot;IMG_4776.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-aOiOLpMFTDI/Wk6BVuj8aJI/AAAAAAAADs4/be6Eq_HBa2YFpnsDYo4pB_yO74VkJYYQQCHMYCw/IMG_4776.jpg?imgmax=1600&quot; alt=&quot;Key Caps, right after bleaching. Laid out on white paper for reference.&quot; width=&quot;499&quot; height=&quot;347&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Interestingly, similar to what I observed with the trap door bay, plastic parts that did not suffer from yellowing before did not seem as receptive to the bleach. You can clearly see this in this detail shot of the space bar.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Key Caps, right after bleaching. Close up angle on different discoloration of the space bar. On white paper for reference.&quot; src=&quot;https://lh3.googleusercontent.com/-6ss-8DiTV0s/Wk6BWnI_gHI/AAAAAAAADs8/gmsL5mE6z-QX_JSHPuhIlG8HWJYKypzGgCHMYCw/IMG_4777.jpg?imgmax=1600&quot; alt=&quot;Key Caps, right after bleaching. Close up angle on different discoloration of the space bar. On white paper for reference.&quot; width=&quot;499&quot; height=&quot;303&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I let everything dry on a cloth over night, before putting the caps back into the keyboard. There are only very few things to look out for when doing this. First of all, remember that there are two special (smaller) springs that go under the space bar, in addition to the center one which is the same size all others.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Space bar, being put back onto they keyboard, springs on the underside. Close up.&quot; src=&quot;https://lh3.googleusercontent.com/-NMnoeFSEDAk/Wk6BXqOh1EI/AAAAAAAADtA/qqzJ7jT8-E8rcgpARK8CdAF9tdiNTs9ggCHMYCw/IMG_4790.jpg?imgmax=1600&quot; alt=&quot;Space bar, being put back onto they keyboard, springs on the underside. Close up.&quot; width=&quot;499&quot; height=&quot;334&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;When putting back the metal braces under the larger keys, I noticed that they would not move as easily as before. This is because the bath in the soap water had washed away the grease that makes sure there is no noticeable friction. So I added some synthetic fat to lubricate the points where the braces a hooked into the white receptacles under the keys. For this I used the stuff that came with my coffee machine, because it does not damage plastic over time. WD-40 would not be well suited here. If you go through this procedure, make sure you use such a non-aggressive lubricant.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Return key. Underside. Lubricated metal brace receptacles highlighted.&quot; src=&quot;https://lh3.googleusercontent.com/-ByMzQ_UNPLA/Wk6BYYwI34I/AAAAAAAADtE/VI5OouGWklYMzXd3v2VteSQ5tUPAh6iRQCHMYCw/IMG_4778.jpg?imgmax=1600&quot; alt=&quot;Return key. Underside. Lubricated metal brace receptacles highlighted.&quot; width=&quot;499&quot; height=&quot;380&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Lastly, just as some keys had takes more force to pry off the keyboard base plate, some also took more pressure to go back in. At first I thought be springs were not equally sized after all, when I saw several keys stand out about 2 millimeters higher than their neighbors. But pushing them down just a little more decidedly made them audibly click back into place.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Keyboard with a few key caps placed back. Mostly empty still.&quot; src=&quot;https://lh3.googleusercontent.com/-0toeXzhBByM/Wk6BZGT7rsI/AAAAAAAADtI/xEwUmpY1IC0Ae6liVbFW_rwBahKHCxgMACHMYCw/IMG_4783.jpg?imgmax=1600&quot; alt=&quot;Keyboard with a few key caps placed back. Mostly empty still.&quot; width=&quot;499&quot; height=&quot;316&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I started with the larger keys, because that way you have enough room to work with the metal braces. When all keys were back in place, I put they keyboard back into the case to see how it looked. At that two things became very obvious: First, even though they had spent almost an hour less in the solution than the mouse, the “after-bleaching” was still significant. The regular keys had become almost white, with the contrast to the darker keys significantly less pronounced. But more importantly, it was now &lt;em&gt;very&lt;/em&gt; clear that I would now have to come up with a good way to treat the top and bottom case parts 😯.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Bleached keyboard, in still yellowed Amiga case.&quot; src=&quot;https://lh3.googleusercontent.com/-jjvBv9qNXlE/Wk6BaXPwApI/AAAAAAAADtM/WSxk6Ip_ywsWVhDBwGHIclkyOQQvwAlpACHMYCw/IMG_4793.jpg?imgmax=1600&quot; alt=&quot;Bleached keyboard, in still yellowed Amiga case.&quot; width=&quot;499&quot; height=&quot;341&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A report of how that went will have to wait until next time 🙂.&lt;/p&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=359511319245725293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/359511319245725293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/359511319245725293'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2018/01/amiga-500-restoration-retrobrighting-i.html' title='Amiga 500 Restoration: Retrobrighting I'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-R056z3ZFJg8/Wkgu1JwVR9I/AAAAAAAADr0/6f5K4BjVcHI-vQLBQzTCyFy0eW2BGj5zACHMYCw/s72-c/IMG_4858.jpg?imgmax=1600" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-3697974783026594821</id><published>2017-12-24T10:13:00.002+01:00</published><updated>2020-08-25T01:32:48.979+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="amiga"/><category scheme="http://www.blogger.com/atom/ns#" term="fun"/><category scheme="http://www.blogger.com/atom/ns#" term="hardware"/><category scheme="http://www.blogger.com/atom/ns#" term="misc"/><category scheme="http://www.blogger.com/atom/ns#" term="retro"/><title type='text'>Amiga 500 Restoration</title><content type='html'>&lt;p&gt;About 6 weeks ago I got the somewhat crazy idea to — just for fun — play some Amiga games. At first, my plan was to set up a Raspberry Pi 3 with an Amiga emulator, after stumbling across &lt;a href=&quot;https://www.youtube.com/watch?v=bHFcM8Ka3Sg&quot;&gt;Dan Wood’s YouTube channel&lt;/a&gt;. Even though I even have a Pi 3 lying around unused at the moment, seeing Dan holding that Amiga 500 in his hands at the beginning of the video, I got all nostalgic and decided I could at least do a quick ebay search to see how much they go for these days.&lt;/p&gt;
&lt;p&gt;Turns out, I could get my hands on one, including a memory expansion card, mouse and power brick (and a brick it is!) for  just 60€. Turns out, I would end up spending quite a bit more in the end, but still it was (and still is) a fun experience.&lt;/p&gt;
&lt;p&gt;The whole story is probably way too long for a single post, so I may end up splitting this into at least two parts, but I feel it is necessary to write this down if only to remind myself about it in the future :-)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This is the first post in a series about restoring an Amiga 500 back to its former glory. Here are all of them so far. I’ll try to remember to update this in all related entry.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2017-12-24: &lt;a href=&quot;http://www.danielschneller.com/2017/12/amiga-500-restoration.html&quot;&gt;Amiga 500 Restoration&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2018-01-05: &lt;a href=&quot;http://www.danielschneller.com/2018/01/amiga-500-restoration-retrobrighting-i.html&quot;&gt;Retrobrighting I&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2018-02-05: &lt;a href=&quot;http://www.danielschneller.com/2018/02/amiga-500-restoration-a501-memory.html&quot;&gt;A501 Memory Expansion&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2018-02-05: &lt;a href=&quot;http://www.danielschneller.com/2020/08/amiga-500-restoration-mouse-and.html&quot;&gt;Mouse and Mainboard Maintenance&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Amiga 500&lt;/h2&gt;
&lt;p&gt;&lt;img title=&quot;Yellow Amiga 500.jpeg&quot; src=&quot;https://lh3.googleusercontent.com/-Y2IzrVRTJeE/Wj9vsl0LOjI/AAAAAAAADno/AqQs6nNAxbsaM4JZBgXmyRbsKJVeP82XwCHMYCw/fullsizeoutput_9007.jpeg?imgmax=1600&quot; alt=&quot;Amiga 500, yellowed plastic , straight from ebay&quot; width=&quot;600&quot; height=&quot;450&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;There’s quite a few Amigas on ebay, especially 500s. Considering they were the cheapest and thereby most common model, that makes sense. I god hold of one for 60€ plus shipping. I could have gotten one in better condition for more money, but I wanted something to try the technique of &lt;a href=&quot;https://www.youtube.com/watch?v=qZYbchvSUDY&quot;&gt;retrobrighting&lt;/a&gt; on, so I was just fine with the yellowed case.&lt;/p&gt;
&lt;p&gt;It arrived in a big box with lots of packing paper, covering the mouse, the power brick and the Amiga itself, plus some cable I couldn’t immediately identify. Only later did I remember it is an RGB video cable. I also did not remember the power brick to be so heavy. It was equally yellowed.&lt;/p&gt;
&lt;p&gt;The picture above was taken under fluorescent light, so the color representation is not exactly accurate. The next photo was taken in daylight on an overcast winter day, with a white sheet of paper for reference. I then used Photos.app on the Mac to set the white point to that paper. This allows a better side-by-side comparison later.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;fullsizeoutput_6392.jpeg&quot; src=&quot;https://lh3.googleusercontent.com/-sLBlXwFr7VA/WkOd4ZGl6AI/AAAAAAAADn4/BdsaYhaodUokvac9IziFgOtmEQOTHQSqwCHMYCw/fullsizeoutput_6392.jpeg?imgmax=1600&quot; alt=&quot;Fullsizeoutput 6392&quot; width=&quot;600&quot; height=&quot;450&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Having neither a suitable Amiga monitor like the venerable Commodore 1084S, nor an adapter cable to hook the machine up to my Panasonic plasma TV via the SCART connector, I could only do a very superficial health check. I hooked the computer up to power and turned it on. After about three seconds the power LED hat come up to full brightness, and the disk drive began its expected regular soft clicking every two seconds or so, looking for a 3.5” floppy. So the machine seemed healthy for the moment.&lt;/p&gt;
&lt;h2&gt;Cleaning inside and out&lt;/h2&gt;
&lt;p&gt;While the yellowed case is a consequence of age and UV exposure and cannot be removed superficially, there was also quite a bit of dirt and grime on the case, the keyboard, the mouse and the power brick. So I decided to take everything apart and give it a thorough cleaning. What follows are the steps to disassemble and clean everything. &lt;/p&gt;
&lt;h3&gt;Taking off the top case&lt;/h3&gt;
&lt;p&gt;The top case can easily be removed by unscrewing 6 screws on the underside. On some Amigas these may be Philips heads, but the more common variant seems to be with Torx screw heads. With a little care you can open them with a flat head screw driver, without damaging the screws. If you have the appropriate Torx screw driver, even better, of course.&lt;/p&gt;
&lt;p&gt;On left and right side there are plastic clips on the inside, holding the top and bottom case together. Be careful when taking off the top part, because they are easy to break. Carefully wiggle the top case left and right to get one of them to slip out.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_5056.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-Iow5i3ie0cc/WkOd545OFwI/AAAAAAAADoA/c2XInPFyKeY8VA2uI7rvZWgCtb4CnLgVwCHMYCw/IMG_5056.jpg?imgmax=1600&quot; alt=&quot;IMG 5056&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;img title=&quot;IMG_5057.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-mDM5fwdb5x4/WkOd5PRiUTI/AAAAAAAADn8/F1ApA0y7D1IUwpRvN7cM4zkcVBTYrvBsQCHMYCw/IMG_5057.jpg?imgmax=1600&quot; alt=&quot;IMG 5057&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Once open, you have the keyboard and the RF shield in front of you. Be very gentle when handling the top case. Even though is won’t break apart too easily, due to the big holes for the keyboards, it lacks a bit of structural integrity unless handled by holding it on the more massive part where the ventilation slits are. Also take care to put it down gently and on soft undergrounds. I learned the hard way and chipped the two rear corners when trying to lean it against a wall and hit the ground at a bad angle.&lt;/p&gt;
&lt;h3&gt;Removing the Keyboard&lt;/h3&gt;
&lt;p&gt;To clean the keyboard, I recommend first removing it from the case. It has to come out for the later steps anyway. To do so, disconnect the cable from the motherboard by pulling it straight up through the hole in the shield. It should be rather safe to pull on the cable — the connector isn’t that tight on the board, and trying to get your fingers or some tool through the hole is probably a bigger risk of damaging something.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;img title=&quot;remove_keyboard.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-yokfPOMk5Vo/WkOd6swG0OI/AAAAAAAADoE/XcfgkHL3vtA4BegnxHj-GZST0HUC_EyNwCHMYCw/remove_keyboard.jpg?imgmax=1600&quot; alt=&quot;Remove keyboard&quot; width=&quot;367&quot; height=&quot;221&quot; border=&quot;0&quot; /&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Don’t worry, the cable is keyed, so you don’t have to write down the orientation: Looking at it from above, there are 4 wires on the left, and 3 on the right, separated by an empty slot. The connector on the board has a missing pin there, too, so it is easy to reattach later.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_5059.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-RXHkpCGxFwQ/WkOd8GNuveI/AAAAAAAADoM/VQ8nIac6f7wjLVfiPsGiTRip_sngXvBxACHMYCw/IMG_5059.jpg?imgmax=1600&quot; alt=&quot;IMG 5059&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Once the cable is free, you can slide the keyboard slightly from under the plastic latches at the very front of the machine. Then just lift it up. Notice the small spongy tape pieces between the keyboard metal base plate and the plastic latches. Depending on the age and condition of the Amiga, those might come off. In my case, the outer two stayed in place, the middle latches didn’t have any. I am not sure, if there used to be four. If they detach, I recommend replacing them, because I suppose they are intended to keep the keyboard more silent and as a strain relief for the plastic latches. &lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_5058.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-ElMQiU-P2AM/WkOd7YMS1oI/AAAAAAAADoI/xhSZIVIiAcM47cp5ku1xvZOU993yX_wdwCHMYCw/IMG_5058.jpg?imgmax=1600&quot; alt=&quot;IMG 5058&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;On right hand side, just beneath the power / drive LEDs, the keyboard rests on a similar little sponge. This one came right off when I lifted the keyboard up. This one, too, should be replaced, even though, of course, none of them are exactly mission critical. I did that with two layers of Powerstrips, leaving the protective tape on on the upper side.&lt;/p&gt;
&lt;p&gt;Please note, that I only applied this at the very end of the restoration process, because in the meantime the Amiga casing underwent several other steps, which would have removed or at least damaged that new cushion.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_5063.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-Ws12dxTjnls/WkYxW0LZYFI/AAAAAAAADpU/vADebATUdhg2Gr57urEaqWdrAcm6mnmmgCHMYCw/IMG_5063.jpg?imgmax=1600&quot; alt=&quot;IMG 5063&quot; width=&quot;299&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;img title=&quot;IMG_5064.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-m6t6rXMjgUE/WkYxXhWDbUI/AAAAAAAADpY/gnz-Vu5Ka30IUw3xyPR1oM_uyr3NHCsHwCHMYCw/IMG_5064.jpg?imgmax=1600&quot; alt=&quot;IMG 5064&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;When putting the keyboard back in later, carefully slide it back under the front latches. The metal base plate has a notch indicating the middle. Align that with the screw hole in the bottom case.&lt;/p&gt;
&lt;h3&gt;Removing the Key Caps&lt;/h3&gt;
&lt;p&gt;Lots of grime and dirt accumulates on and especially under the keys. To clean the keyboard thoroughly, the caps must be removed. The regular sized keys (including the F-Keys, Del, Help and Ctrl) can be taken off more easily than the larger ones (Return, Shift, the Spacebar, etc). You will often find people recommending to use a flat head screw driver to slide under a key cap, using it as a lever to pop the key off. While this works, I do &lt;strong&gt;not&lt;/strong&gt; recommend it. The reason is that screw drivers are metal, and the key caps are 30 year old plastic, which got somewhat brittled over time. I learned the hard way that you cannot always tell how much force you can apply, before something breaks. This meant I had to repair a cracked “J” key (Super glue from the inside of the key was used to put the broken piece back in place. Once it had dried, two additional layers of flexible glue were added to increase stability).&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_5053.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-MWzdwR9vklY/WkOd85G3WhI/AAAAAAAADoQ/xMaGc8K_8oMoCHwPSgPVYiR0wZkzgIwiQCHMYCw/IMG_5053.jpg?imgmax=1600&quot; alt=&quot;IMG 5053&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;What I found worked way better than metal were wooden skewers. They are flexible and tend to break when you apply too much pressure. I managed to get all remaining keys off without any more damage using this method. &lt;/p&gt;
&lt;p&gt;This picture shows the the little hill each key rests on, as it stands above the plastic base. Having that before beginning would have helped a lot to understand where to apply force, so I’ll post this here for posterity. To get a key off, I tried to get two skewers underneath as shown by the parallel lines, and then to gently lift them upwards a little bit one at a time, alternating between the two. Most keys came of after just a few nudges. Be patient, they will eventually come loose. Some particularly stubborn ones took a few broken skewers. If they don’t seem to move at all, try to put a skewer close to the middle and carefully lift there. The thing that I found to be most important was to get the skewers to rest on the elevated part.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4600.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-vJZquG7Iysw/WkOeAtqJXQI/AAAAAAAADok/w4UIbXEpQUUCRtI-Tm6volxkFMxhxDdBgCHMYCw/IMG_4600.jpg?imgmax=1600&quot; alt=&quot;IMG 4600&quot; width=&quot;398&quot; height=&quot;292&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Underneath each of the regular sized keys, there is one metal spring. Be careful not to lose any, they make the keys come back up while typing. I placed them in a bin with a lid for safekeeping.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4592.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-c1z2OhYvEss/WkOd9hUmZnI/AAAAAAAADoU/m9qJP8JDstEv2aWZtFOyWVVR1lew09NVwCHMYCw/IMG_4592.jpg?imgmax=1600&quot; alt=&quot;IMG 4592&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The bigger keys are a little more difficult to remove. They have metal braces underneath them to give them more stability and prevent wobbling. They can be popped off using the skewers, too, but you cannot just lift them off the keyboard afterwards. Instead, the braces need to be carefully removed either from the black plastic keyboard base, of from the key cap themselves.&lt;/p&gt;
&lt;p&gt;I went for what I now consider the worse option and unclipped them from the base plate. In retrospect I think this is too risky, because for once at least some of them were really hard to get unclipped and you risk breaking off pieces of the assembly. Second, because you must be very gentle and not bend the braces. So if I were to do this again, I would use tweezers and unhook them from the underside of the key caps, which might be a little more fiddly, but requires much less force.&lt;/p&gt;
&lt;p&gt;The pictures show the braces for the Return key, and where they are attached to the base plate, and on the underside of the key.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4781.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-xUkovUUmrbI/WkOd_OommzI/AAAAAAAADoc/qr8sTcbCPpQahep-GErWHIIfWOjoRiivACHMYCw/IMG_4781.jpg?imgmax=1600&quot; alt=&quot;IMG 4781&quot; width=&quot;300&quot; height=&quot;197&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4779.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-spsegDZ10m0/WkOd_7TJIMI/AAAAAAAADog/ghU6S5PlnU0_LakIIFTmnaw4dqbb465jwCHMYCw/IMG_4779.jpg?imgmax=1600&quot; alt=&quot;IMG 4779&quot; width=&quot;275&quot; height=&quot;339&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The space bar has three springs. Notice that the middle one is the same size as all the other keys, but those on the left and right of it are slightly shorter. This is important when reassembling the keyboard later.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4790.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-XDLmKG6TFgI/WkOd-YAe_kI/AAAAAAAADoY/xBP4Mi9pkRYVABokfwurP729ZzXL4yiSgCHMYCw/IMG_4790.jpg?imgmax=1600&quot; alt=&quot;IMG 4790&quot; width=&quot;299&quot; height=&quot;203&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Cleaning the Keyboard Base Plate&lt;/h3&gt;
&lt;p&gt;Once all the keys were taken off, this is what my keyboard base plate looked like. All in all not too gross, mostly lost of dust and some sticky stuff.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4594.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-jhQeb4HnjP0/WkTJ55hZ82I/AAAAAAAADo4/TF18ltPRB1oU4cxFJESuMcqwFWnxMGBIwCHMYCw/IMG_4594.jpg?imgmax=1600&quot; alt=&quot;IMG 4594&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;img title=&quot;IMG_4593.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-kFtLBMcRJtc/WkTJ6772f8I/AAAAAAAADo8/dWOmKzbPD_QEwR6_72EWW61qkPzad-g9wCHMYCw/IMG_4593.jpg?imgmax=1600&quot; alt=&quot;IMG 4593&quot; width=&quot;300&quot; height=&quot;169&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The first round of cleaning was just a brush and a handheld vacuum cleaner. This got rid of most of the dust and loose dirt. In my case, there was nothing left on the keyboard that could have been sucked into the vacuum, so I was not all to careful when doing this. If you leave the metal braces on there, make sure those are not ripped off.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4596.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-9rwg3WkhWhQ/WkTJ7szIw2I/AAAAAAAADpA/bO_7flVFAVU3TYR2uQ9cO6QzFKUiihq2QCHMYCw/IMG_4596.jpg?imgmax=1600&quot; alt=&quot;IMG 4596&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Finally I used paper towels and warm water to remove everything that more sticky, and finally went around all the key domes and the nooks and crannies of the metal brace holders with isopropyl alcohol and cotton swabs. The end result looked like this:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4599.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-jGxEinCAtmk/WkTJ8v41WoI/AAAAAAAADpE/3Fd_dlUWFdA4ZIaze5GAam0W-2VHrYVBgCHMYCw/IMG_4599.jpg?imgmax=1600&quot; alt=&quot;IMG 4599&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;Cleaning the Keyboard Caps&lt;/h3&gt;
&lt;p&gt;There was no glory in cleaning the key caps. They very unceremoniously were all dropped into a small bucket with warm water and some dish cleaning liquid to soak for a few minutes. After that came the laborious manual part, rubbing them with a kitchen sponge. Make sure to only use the soft parts of the sponge, should yours have a more scratchy side. That one would most probably leave visible marks in the otherwise very smooth plastic.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4591.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-as_zLKdPap4/WkYxZPCGvoI/AAAAAAAADpg/e1NiBOXwWFcGMkj_qHP8SITN6Sm_KMGVACHMYCw/IMG_4591.jpg?imgmax=1600&quot; alt=&quot;IMG 4591&quot; width=&quot;299&quot; height=&quot;216&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4649.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-RWStnqv90TI/Wk1TUkB-BUI/AAAAAAAADsE/spsruQRXpncxz_uN-aULWF8IFOPgobxXwCHMYCw/IMG_4649.jpg?imgmax=1600&quot; alt=&quot;IMG 4649&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Some of the key caps had some nasty stuff stuck on the bottom side, which I had to remove with a tooth pick. The whole cleaning easily lasted for 30 minutes, because I wanted to make sure all sides of the keys were thoroughly cleaned in preparation for bleaching them later. The photo above shows how much the keys had yellowed, especially when you look at the space bar. You can clearly make out where the adjacent keys had kept light away from the side of it. Their shape is clearly visible in the “whiter” parts. Well will come back to this later.&lt;/p&gt;
&lt;h3&gt;Cleaning the RF shield&lt;/h3&gt;
&lt;p&gt;With the keyboard out, the RF shield is the most visible part now. I gave it the same treatment with brush and vacuum cleaner from the outside, including the space between it and the bottom case. This removed most of the dirt already.  Then, with it still in the case, I wiped it off with a moistened paper towel and some glass cleaner. The dark spots seen in the photo are rust, so they can&#39;t be removed easily. &lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4604.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-wSlYULMpRCo/WkYxaA0ESRI/AAAAAAAADpk/alpervehGkQXE7o_K_97LVuLUrbcF4FcACHMYCw/IMG_4604.jpg?imgmax=1600&quot; alt=&quot;IMG 4604&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;img title=&quot;IMG_4607.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-HCrGf9kYp5k/WkYxbGG4Y1I/AAAAAAAADpo/kFxnB72T47UkiMaroj8qU_h_OD3_UjHUgCHMYCw/IMG_4607.jpg?imgmax=1600&quot; alt=&quot;IMG 4607&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Removing the RF shield&lt;/h3&gt;
&lt;p&gt;The get to the mainboard, next I removed the RF shield from the case. It is attached to the bottom case just a few screws that are easy to get to. On the left, there is a separate metal bracket across the expansion port. I carefully removed that, too, and put it away to prevent it from getting bent.&lt;/p&gt;
&lt;p&gt;To actually take the shield out, a series of small metal latches need to be bent upwards. They connect the metal tray the mainboard sits on with the RF shield. I just followed the edges of the RF shield and carefully bent them upwards with a flat head screwdriver.&lt;/p&gt;
&lt;p&gt; &lt;img title=&quot;IMG_4606.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-op6Ast8H7Kc/WkYxbxTvecI/AAAAAAAADps/6LnshvHHQhMqfa0P2l1aNHih6T7QceCuACHMYCw/IMG_4606.jpg?imgmax=1600&quot; alt=&quot;IMG 4606&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Once they are all bent up, the shield came off with a little wiggling. Once out of the case, the shield is rather wobbly and should be put away safely to prevent accidental bending and deformation.&lt;/p&gt;
&lt;h3&gt;Cleaning the mainboard&lt;/h3&gt;
&lt;p&gt;With the RF shield out, the mainboard lay before me, with fond memories from the 80s… and with lots of dirt, potentially also from the 80s…&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4608.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-cVXOS-qMqXw/WkYxc5JzBCI/AAAAAAAADpw/gjGcrgtbzGsk4taxJDAYhfK2soMIfz2CQCHMYCw/IMG_4608.jpg?imgmax=1600&quot; alt=&quot;IMG 4608&quot; width=&quot;400&quot; height=&quot;300&quot; border=&quot;0&quot; /&gt;&lt;img title=&quot;IMG_4611.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-RZ5KKk8Sqfo/WkYxdjMtdCI/AAAAAAAADp0/EtX02bN5CzYfmNWVbE2fNE-WOhxBhRviwCHMYCw/IMG_4611.jpg?imgmax=1600&quot; alt=&quot;IMG 4611&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;img title=&quot;IMG_4616.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-O-BnB4ay2Hg/WkYxenyXiAI/AAAAAAAADp4/nI64kJS086MD3kX40FWgHSOBEjThRr-CwCHMYCw/IMG_4616.jpg?imgmax=1600&quot; alt=&quot;IMG 4616&quot; width=&quot;400&quot; height=&quot;300&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Again, this was cleaned with a brush and the handheld vacuum cleaner. Even though with the perspective in the photo does not really show it, I took particular care to not get the vacuum too close to the board, because I did not want to risk it ripping anything off the board (even though it was set to low power), and also to prevent too much electrostatic buildup.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4614.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-4ubYYGoc1Zc/WkYxfUrZLiI/AAAAAAAADp8/6XVKqP7ilFsehfeis83lPEF_jYxKoerXwCHMYCw/IMG_4614.jpg?imgmax=1600&quot; alt=&quot;IMG 4614&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It took a while, but I was pleased with the result.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4619.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-K8vjGZd0I90/WkYxgEUBccI/AAAAAAAADqA/1R0aYqwh4fADdevGUsYIeWB0QgTFCxy_ACHMYCw/IMG_4619.jpg?imgmax=1600&quot; alt=&quot;IMG 4619&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;img title=&quot;IMG_4620.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-tAzjlG5xnUY/WkYykvT7V_I/AAAAAAAADqI/Srw2jKURH6MqrGuHOg9EigQeyQDBJMEOgCHMYCw/IMG_4620.jpg?imgmax=1600&quot; alt=&quot;IMG 4620&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Somewhere along the way I removed the floppy drive, because it covered part of the board.&lt;/p&gt;
&lt;h3&gt;Removing the mainboard&lt;/h3&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;With the mainboard now clean, I removed it from the case, too, to be able to clean the bottom case. The board sits on a metal tray, which makes removal quite simple. The only thing to be careful about is to pull the board a little forward to get the external connectors free from their openings in the back wall of the plastic case. Once they are clear, the whole tray can be taken out. I also took the mainboard out of the tray for a moment, to be able to clean out the dust from underneath it. Once that was done, I put it back immediately, because it serves as a good protection for the bottom side of the board.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4625.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-z6Eqv74786w/WkY2w29N_TI/AAAAAAAADqU/gSggXLD__8oyZ3ucCr44vsK9yQKpRvi7wCHMYCw/IMG_4625.jpg?imgmax=1600&quot; alt=&quot;IMG 4625&quot; width=&quot;300&quot; height=&quot;202&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Cleaning the case parts&lt;/h3&gt;
&lt;p&gt;With everything removed from the case, I scrubbed the top and bottom cases with warm water, soap, an old toothbrush, paper towels, isopropyl alcohol, and microfibre cloths. Only for a very few stubborn spots I had to rub a little harder with some mild abrasive. That’s the white stuff you can see on one of the photos. Once done, I rinsed everything off in the shower and let it dry over night. While there are pictures of the dirty state, for some reason I did not think of documenting the finished cleaned state 🤨&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;IMG_4631.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-WZf8iH9ltus/WkY2yiMcUZI/AAAAAAAADqc/MWhrelT5Y8QxMZZx3il95x41JwXNBTgQgCHMYCw/IMG_4631.jpg?imgmax=1600&quot; alt=&quot;IMG 4631&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;img title=&quot;IMG_4629.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-JlZZX1UHgqs/WkY2ztAe24I/AAAAAAAADqg/Bg0dQ9vAf4Eod27hSh2v4NPimh_-PAuegCHMYCw/IMG_4629.jpg?imgmax=1600&quot; alt=&quot;IMG 4629&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;img title=&quot;IMG_4630.jpg&quot; src=&quot;https://lh3.googleusercontent.com/-DOE1eNc5FqU/WkY2xyuX3DI/AAAAAAAADqY/zDh1t6gJOD8IkJVchBDblJJoygakoYKrgCHMYCw/IMG_4630.jpg?imgmax=1600&quot; alt=&quot;IMG 4630&quot; width=&quot;300&quot; height=&quot;225&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;At this point, I could have have just reassembled everything in reverse order, and frankly, that would have been a much better state than before. However, there were a few more things I had in mind. But those will be the topic of another post.&lt;/p&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=3697974783026594821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/3697974783026594821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/3697974783026594821'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2017/12/amiga-500-restoration.html' title='Amiga 500 Restoration'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-Y2IzrVRTJeE/Wj9vsl0LOjI/AAAAAAAADno/AqQs6nNAxbsaM4JZBgXmyRbsKJVeP82XwCHMYCw/s72-c/fullsizeoutput_9007.jpeg?imgmax=1600" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-6776002654126062000</id><published>2015-09-01T17:34:00.000+02:00</published><updated>2015-09-01T17:34:36.505+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ceph"/><category scheme="http://www.blogger.com/atom/ns#" term="cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="conference"/><category scheme="http://www.blogger.com/atom/ns#" term="devops"/><category scheme="http://www.blogger.com/atom/ns#" term="interview"/><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><category scheme="http://www.blogger.com/atom/ns#" term="openstack"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>DevOpsCon 2015: Interview</title><content type='html'>&lt;p&gt;Interview mit Lukas und mir auf der DevOpsCon 2015 in Berlin, kurz nach dem Talk über Private Cloud mit OpenSource.&lt;/p&gt;
&lt;iframe width=&quot;640&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/76kcc0sXovY&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=6776002654126062000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/6776002654126062000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/6776002654126062000'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2015/09/devopscon-2015-interview.html' title='DevOpsCon 2015: Interview'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/76kcc0sXovY/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-1718296589615322018</id><published>2015-09-01T17:29:00.001+02:00</published><updated>2016-03-07T16:03:56.326+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ansible"/><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="bug"/><category scheme="http://www.blogger.com/atom/ns#" term="caveat"/><category scheme="http://www.blogger.com/atom/ns#" term="ceph"/><category scheme="http://www.blogger.com/atom/ns#" term="conference"/><category scheme="http://www.blogger.com/atom/ns#" term="devops"/><category scheme="http://www.blogger.com/atom/ns#" term="fun"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="openstack"/><category scheme="http://www.blogger.com/atom/ns#" term="talk"/><title type='text'>FrOSCon 10: Private Cloud mit OpenSource</title><content type='html'>&lt;p&gt;Auf der &lt;a href=&quot;https://www.froscon.de/startseite/&quot;&gt;FrOSCon 10&lt;/a&gt; in St. Augustin habe ich kürzlich ein Update zu unseren Erfahrungen mit dem Thema &quot;Private Cloud mit OpenSource&quot; gegeben. Leider sind noch nicht alle Probleme, über die letztes Jahr berichtet wurde, behoben, aber wir sind schon ein gutes Stück weiter und haben neue Stolperfallen gefunden und z. T. auch überwunden.&lt;/p&gt;

&lt;iframe width=&quot;640&quot; height=&quot;380&quot; src=&quot;https://media.ccc.de/v/froscon2015-1564-private_cloud_mit_opensource_jetzt_aber_in_echt/oembed&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;

&lt;p&gt;Leider habe ich mich mit der Zeit ein wenig getäuscht, da ich den Talk vorher schon einmal in gekürzter Form in 40 Minuten unterbringen musste, aber in der Präsentation den Countdown für die FrOSCon wieder auf 60 Minuten zu stellen vergessen hatte. Zwischenzeitlich war ich deswegen der Meinung, ziemlich hinterherzuhängen... Hoffe, es macht trotzdem ein bisschen Spaß, so blieb am Ende mehr Zeit für Fragen und Gespräche :)&lt;/p&gt;

&lt;p&gt;Hier noch die Folien auf Slideshare:&lt;/p&gt;
&lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/A9aMC4uRyB4YVq&quot; width=&quot;425&quot; height=&quot;355&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen&gt; &lt;/iframe&gt; &lt;div style=&quot;margin-bottom:5px&quot;&gt; &lt;strong&gt; &lt;a href=&quot;//www.slideshare.net/dschneller/dev-ops-conference-2015&quot; title=&quot;Private Cloud mit Ceph und OpenStack&quot; target=&quot;_blank&quot;&gt;Private Cloud mit Ceph und OpenStack&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;//www.slideshare.net/dschneller&quot; target=&quot;_blank&quot;&gt;Daniel Schneller&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=1718296589615322018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/1718296589615322018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/1718296589615322018'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2015/09/froscon-10-private-cloud-mit-opensource.html' title='FrOSCon 10: Private Cloud mit OpenSource'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-3698054100498181170</id><published>2015-03-16T10:29:00.000+01:00</published><updated>2015-03-16T10:29:43.622+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ansible"/><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="bug"/><category scheme="http://www.blogger.com/atom/ns#" term="ceph"/><category scheme="http://www.blogger.com/atom/ns#" term="devops"/><category scheme="http://www.blogger.com/atom/ns#" term="hardware"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="openstack"/><title type='text'>True KVM Live Migration with OpenStack Icehouse and Ceph based VM storage</title><content type='html'>&lt;p&gt;Over on the codecentric blog I just published a new post on &lt;a href=&quot;https://blog.codecentric.de/en/2015/03/true-kvm-live-migration-openstack-icehouse-ceph-based-vm-storage/&quot;&gt;True KVM Live Migration with OpenStack Icehouse and Ceph based VM storage&lt;/a&gt;, outlining the process it took me to get this actually working. There were several issues to work around, some of them bugs in OpenStack, some of them home-grown issues.&lt;/p&gt;
&lt;p&gt;I provide a few patches to OpenStack classes as well as a description of what is actually going wrong and how to circumvent the problems. So head right over and have fun reading :)&lt;/p&gt;</content><link rel="related" href="https://blog.codecentric.de/en/2015/03/true-kvm-live-migration-openstack-icehouse-ceph-based-vm-storage/" title="True KVM Live Migration with OpenStack Icehouse and Ceph based VM storage"/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=3698054100498181170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/3698054100498181170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/3698054100498181170'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2015/03/true-kvm-live-migration-with-openstack.html' title='True KVM Live Migration with OpenStack Icehouse and Ceph based VM storage'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-1717529258796514348</id><published>2014-12-01T00:35:00.000+01:00</published><updated>2014-12-01T00:35:28.482+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ceph"/><category scheme="http://www.blogger.com/atom/ns#" term="conference"/><category scheme="http://www.blogger.com/atom/ns#" term="devops"/><category scheme="http://www.blogger.com/atom/ns#" term="hardware"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Ceph Storage Cluster</title><content type='html'>&lt;p&gt;At &lt;a href=&quot;http://www.data2day.de&quot;&gt;Data2Day 2014 in Karlsruhe&lt;/a&gt; I talked about the Ceph Storage Cluster and us using it to store documents in &lt;a href=&quot;https://www.centerdevice.de&quot;&gt;CenterDevice&lt;/a&gt;. These are the slides (German) I used. If you are interested in Ceph and/or look for help implementing it, don&#39;t hesitate to contact me.&lt;/p&gt;

&lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/42069645&quot; width=&quot;425&quot; height=&quot;355&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen&gt; &lt;/iframe&gt; &lt;div style=&quot;margin-bottom:5px&quot;&gt; &lt;strong&gt; &lt;a href=&quot;//www.slideshare.net/dschneller/ceph-storage-cluster&quot; title=&quot;Ceph Object Store&quot; target=&quot;_blank&quot;&gt;Ceph Object Store&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;//www.slideshare.net/dschneller&quot; target=&quot;_blank&quot;&gt;Daniel Schneller&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=1717529258796514348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/1717529258796514348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/1717529258796514348'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2014/12/ceph-storage-cluster.html' title='Ceph Storage Cluster'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-8139471434572673639</id><published>2014-08-28T14:39:00.001+02:00</published><updated>2014-08-28T14:39:09.277+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cocoa"/><category scheme="http://www.blogger.com/atom/ns#" term="conference"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="ios"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="mac os x"/><category scheme="http://www.blogger.com/atom/ns#" term="mobile"/><category scheme="http://www.blogger.com/atom/ns#" term="quality"/><category scheme="http://www.blogger.com/atom/ns#" term="talk"/><category scheme="http://www.blogger.com/atom/ns#" term="xcode"/><title type='text'>Localizing Mobile Apps</title><content type='html'>&lt;p&gt;What do the acronyms I18N or L10N stand for? What do they mean for developers of mobile applications in particular?&lt;/p&gt;
&lt;p&gt;I hosted a session about localizing mobile applications at Developer Week 2014 in Nuremberg. It covers — among other things — text, numbers, date and time, images, and other localizable resources.&lt;/p&gt;
&lt;p&gt;See the &lt;a href=&quot;https://blog.codecentric.de/en/2014/08/localizing-mobile-apps/&quot;&gt;codecentric blog&lt;/a&gt; for slides and some more details.&lt;/p&gt;
&lt;p&gt;The post and the slides are also available &lt;a href=&quot;https://blog.codecentric.de/2014/08/lokalisierung-fur-mobile-apps/&quot;&gt;in German&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=8139471434572673639' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/8139471434572673639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/8139471434572673639'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2014/08/localizing-mobile-apps.html' title='Localizing Mobile Apps'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-5913005085384879147</id><published>2014-08-25T19:47:00.000+02:00</published><updated>2014-08-25T19:47:12.498+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ansible"/><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="devops"/><category scheme="http://www.blogger.com/atom/ns#" term="jinja2"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh"/><title type='text'>Jinja2 for better Ansible playbooks and templates</title><content type='html'>&lt;p&gt;Another post on Ansible over on the &lt;a href=&quot;https://blog.codecentric.de/en/2014/08/jinja2-better-ansible-playbooks-templates/&quot;&gt;codecentric blog: Jinja2 for better Ansible playbooks and templates&lt;/a&gt; linked here for your convenience :) &lt;/p&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=5913005085384879147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/5913005085384879147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/5913005085384879147'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2014/08/jinja2-for-better-ansible-playbooks.html' title='Jinja2 for better Ansible playbooks and templates'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-6223449629418775713</id><published>2014-06-23T17:43:00.000+02:00</published><updated>2014-06-23T17:43:38.862+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="devops"/><category scheme="http://www.blogger.com/atom/ns#" term="hardware"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>Ansible: Simple, yet powerful automation</title><content type='html'>&lt;p&gt;On the company blog I published a post about our experience with Ansible today. &lt;/p&gt;
&lt;p&gt;It is no shoot out between different automation tools, but rather a collection of Ansible basics and our experience with it so far. Soon another post will follow about dynamically generated inventories for OpenStack virtual environments.&lt;/p&gt;
&lt;p&gt;You can find it here: &lt;a href=&quot;https://blog.codecentric.de/en/2014/06/ansible-simple-yet-powerful-automation/&quot; title=&quot;Ansible: Simple, yet powerful automation (codecentric blog)&quot;&gt;codecentric blog: Ansible: Simple, yet powerful automation&lt;/a&gt;.&lt;/p&gt;</content><link rel="related" href="https://blog.codecentric.de/en/2014/06/ansible-simple-yet-powerful-automation/" title="Ansible: Simple, yet powerful automation"/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=6223449629418775713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/6223449629418775713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/6223449629418775713'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2014/06/ansible-simple-yet-powerful-automation.html' title='Ansible: Simple, yet powerful automation'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-1041756937935546021</id><published>2014-03-10T09:50:00.001+01:00</published><updated>2014-03-10T09:50:39.087+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="internet"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="security"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh"/><title type='text'>SSH Two-Factor Authentication with Duo Security</title><content type='html'>Over on the &lt;a href=&quot;https://blog.codecentric.de/en&quot;&gt;codecentric blog&lt;/a&gt; I published an article on &lt;a href=&quot;https://blog.codecentric.de/en/2014/03/ssh-two-factor-authentication-duo-security/&quot;&gt;SSH Two-Factor Authentication with Duo Security&lt;/a&gt;. You are welcome to check it out.</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=1041756937935546021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/1041756937935546021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/1041756937935546021'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2014/03/ssh-two-factor-authentication-with-duo.html' title='SSH Two-Factor Authentication with Duo Security'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-2604786993160899401</id><published>2013-11-15T08:58:00.000+01:00</published><updated>2015-06-02T01:09:14.046+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apple"/><category scheme="http://www.blogger.com/atom/ns#" term="applecare"/><category scheme="http://www.blogger.com/atom/ns#" term="caveat"/><category scheme="http://www.blogger.com/atom/ns#" term="hardware"/><category scheme="http://www.blogger.com/atom/ns#" term="iphone"/><category scheme="http://www.blogger.com/atom/ns#" term="warranty"/><title type='text'>iPhone 5 display replacement</title><content type='html'>&lt;h2&gt;The problem&lt;/h2&gt;

&lt;p&gt;About two weeks ago I noticed my iPhone&amp;nbsp;5 had a faint, but ugly pink hue in the center of the screen.
At first I suspected some software issue, because it looked as if the hue was exactly in the area an iOS7 table view uses for its cells to be displayed (i.&amp;nbsp;e. full screen, but with a few points of inset on the left and right edges). Apparently someone must have left some kind of view with a red-ish color behind the table view that was now shining through, because of all the translucency effects iOS7 comes with.&lt;/p&gt;

&lt;p&gt;Turns out though, that this was going on in all kinds of apps, including Instapaper, Pocket, Chrome, Safari Calendar etc. All those certainly would not put any views behind the actual content. Getting more suspicious I showed the problem to several colleagues who all did not see it at first, but once I had pointed it out to them (most visible on a white background) none of them could &quot;unsee&quot; it, either.&lt;/p&gt;

&lt;h2&gt;Warranty Check&lt;/h2&gt;

&lt;p&gt;I checked the warranty status online using &lt;a href=&quot;https://selfsolve.apple.com/agreementWarrantyDynamic.do&quot;&gt;Apple&#39;s Self-Solve Page&lt;/a&gt; and realized that I was the second-to-last day of the 1-year warranty for the device.&lt;/p&gt;

&lt;p&gt;First order of business was to go to a nearby Authorized Apple Partner to ask for a warranty replacement or repair. Though upon comparison with the manager&#39;s iPhone&amp;nbsp;5 he could see that he had the same issue (now also not being able to unsee it, you are welcome ;)), he said that it would be easier for me (no time without a phone) if I contacted Apple while within the warranty period.&lt;/p&gt;

&lt;p&gt;So I followed the advice and called AppleCare the next day. The representative on the phone suggested to visit a nearby Apple Retail Store if I would like a replacement unit or immediate repair, if I didn&#39;t mind driving there (about 50km from where I live). Because the problem had been reported while within the first year, it would be ok if they did not have an appointment right that day.&lt;/p&gt;

&lt;p&gt;So next thing I did was make an appointment for the Genius bar the the &lt;a href=&quot;http://www.apple.com/de/retail/centro/&quot;&gt;Apple Store CentrO&lt;/a&gt; which was exactly one week past the original warranty.&lt;/p&gt;

&lt;h2&gt;Genius Bar&lt;/h2&gt;

&lt;p&gt;Arriving there at the bar, the Genius could immediately confirm the color issue and started checking out my warranty status. From there the &amp;mdash; what I thought would be a 20 minute procedure &amp;mdash; journey began.&lt;/p&gt;

&lt;p&gt;Because the Apple Care agent I had called a week ago had apparently forgot to change my warranty status (their term, no idea what it exactly means), they could not offer me a free exchange or repair. So I had to call Apple Care yet again to have them do that. Anyone who has had contact with them  knows, that this will take a while. While I was on the phone my Genius finished his working day and handed my case over to a colleague.&lt;/p&gt;

&lt;p&gt;After about 10 minutes waiting I got someone whom I told about the story again and asked him to fix the warranty status for the colleagues at the store to see. He told me he was not authorized to do so, but would now check with his supervisor. After another 15 minutes of waiting he was back, telling me all would be good and that he would now pass me on the supervisor.&lt;/p&gt;

&lt;p&gt;She &amp;mdash; a nice lady this time &amp;mdash; told me she would not extend my warranty for 7 days, enough to cover me for this appointment at the store, to that they would be able to offer a free exchange or repair. According to her, the store employees would be able to see the change immediately, having access to the same database. She also left me with her email address and phone number, so I could contact her directly should anything be left clear or to just provide some quick feedback once my problem had been resolved.&lt;/p&gt;

&lt;p&gt;Back to my Genius &amp;mdash; who was apologizing for the long wait I had already had so far &amp;mdash; he could &lt;em&gt;not&lt;/em&gt; see the change to the warranty status yet. After refreshing my case file in his app, he finally said he would now proceed on his own authority to not keep me waiting much longer. I was already expecting to be able to leave &lt;em&gt;really soon&amp;trade;&lt;/em&gt;, because I was expected elsewhere.&lt;/p&gt;

&lt;p&gt;However, once I had taken my phone out of its case, he put it into a bag and said that because it was a screen related issue, they would now replace the screen. He would make sure that I got an expedited repair and that the guys backstage would hurry, but he could not make it much shorter than another 45 to 60 minutes of waiting. So much for my dinner plans with the wife&amp;hellip; Instead I went to Starbucks first and then spent some 30 minutes playing with iPads and MacBooks in the store.&lt;/p&gt;

&lt;p&gt;Finally, after what totalled to about 2 and a quarter hours, I had my phone back, with a new screen and without the pink tint.&lt;/p&gt;

&lt;p&gt;While in the end everything turned out satisfactorily for me, I must say that there is room for improvement here (which I also sent by email to the 2nd level support agent)...&lt;/p&gt;

&lt;h2&gt;Lesson learned&lt;/h2&gt;

&lt;p&gt;Whenever contacting Apple Care close to the end of the warranty period, make sure to have them immediately extend your coverage for a week or so to give you time to get an appointment at the Genius Bar. Had I known that before, the whole procedure would probably have taken not longer than an hour, including the repair.&lt;/p&gt;

&lt;h2&gt;One more thing&lt;/h2&gt;

&lt;p&gt;PS: Is it just me, or is the waiting music on the AppleCare hotline just horribly bad quality? Seems whenever the music got quieter, it was more or less replaced with all static and garbled sound. Had the voice quality not been great before, I could have believed the connection failed somehow.&lt;/p&gt;

&lt;p&gt;&lt;i&gt;Update: See &lt;a href=&quot;http://appleinsider.com/articles/14/07/14/email-to-tim-cook-prompted-change-of-apples-on-hold-music-quality&quot;&gt;AppleInsider&lt;/a&gt; for an update regarding the music quality :)&lt;/i&gt;&lt;/p&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=2604786993160899401' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/2604786993160899401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/2604786993160899401'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2013/11/iphone-5-display-replacement.html' title='iPhone 5 display replacement'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-6523749576958626523</id><published>2013-10-24T18:01:00.001+02:00</published><updated>2013-10-24T18:01:57.849+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apple"/><category scheme="http://www.blogger.com/atom/ns#" term="cocoa"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="ios"/><category scheme="http://www.blogger.com/atom/ns#" term="mac os x"/><category scheme="http://www.blogger.com/atom/ns#" term="xcode"/><title type='text'>Pseudolocalization for Cocoa Apps</title><content type='html'>Over on the codecentric blog I published an article about localizing iOS and OS&amp;nbsp;X applications called &quot;&lt;a href=&quot;https://blog.codecentric.de/en/2013/10/pseudo-localization-cocoa-apps/&quot;&gt;Pseudolocalization for Cocoa Apps&lt;/a&gt;&quot;. It is probably the first of a few, because it turned out rather long already.&lt;br /&gt;
</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=6523749576958626523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/6523749576958626523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/6523749576958626523'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2013/10/pseudolocalization-for-cocoa-apps.html' title='Pseudolocalization for Cocoa Apps'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-7921607797314756649</id><published>2013-10-24T17:54:00.000+02:00</published><updated>2013-11-15T09:47:32.711+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apple"/><category scheme="http://www.blogger.com/atom/ns#" term="codingserbia"/><category scheme="http://www.blogger.com/atom/ns#" term="conference"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="ios"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="serbia"/><category scheme="http://www.blogger.com/atom/ns#" term="talk"/><title type='text'>Coding Serbia: iOS for Java Devs</title><content type='html'>At the first ever &lt;a href=&quot;http://codingserbia.com&quot;&gt;CodingSerbia conference&lt;/a&gt; in Novi Sad, Serbia, I did an introductory talk about how iOS development works in general, with a focus on Java developers who did not have any experience with either the tools, frameworks or even Objective-C as a language.&lt;br /&gt;
&lt;br /&gt;
The slides can be viewed here:&lt;br /&gt;
&lt;br /&gt;
&lt;script async class=&quot;speakerdeck-embed&quot; data-id=&quot;2a14c8501a1701319b734e4ebe2f16c3&quot; data-ratio=&quot;1.33333333333333&quot; src=&quot;//speakerdeck.com/assets/embed.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;
A recording has been made and published on YouTube:
&lt;iframe width=&quot;640&quot; height=&quot;360&quot; src=&quot;//www.youtube.com/embed/fNFyQNUnwXU&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=7921607797314756649' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/7921607797314756649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/7921607797314756649'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2013/10/coding-serbia-ios-for-java-devs.html' title='Coding Serbia: iOS for Java Devs'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-893660589114026499</id><published>2013-06-28T18:29:00.000+02:00</published><updated>2013-06-28T18:29:50.845+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apple"/><category scheme="http://www.blogger.com/atom/ns#" term="caveat"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="internet"/><category scheme="http://www.blogger.com/atom/ns#" term="ios"/><category scheme="http://www.blogger.com/atom/ns#" term="mobile"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="security"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="ssl"/><category scheme="http://www.blogger.com/atom/ns#" term="standards"/><title type='text'>Man in the Middle? - No, thank you!</title><content type='html'>After speaking about the topic the Developer Week 2013 in Nürnberg this week, due to some scheduling coincide I repeated it today for our &lt;a href=&quot;http://www.codecentric.de/&quot; target=&quot;_blank&quot;&gt;codecentric&lt;/a&gt; &quot;&lt;a href=&quot;https://twitter.com/search?q=%23ccdevfriday&amp;amp;src=hash&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Dev-Friday&lt;/a&gt;&quot; in which internal or external speakers present some topic to the whole company.&lt;br /&gt;
&lt;br /&gt;
For a while we have been recording these for colleagues on vacation or otherwise occupied during the talk to watch it later. Several of them are available on &lt;a href=&quot;http://www.youtube.com/codecentricAG&quot; target=&quot;_blank&quot;&gt;codecentric&#39;s YouTube channel&lt;/a&gt; publicly. As of a few moments ago, so is my &lt;i&gt;&quot;Man in the Middle? – No, thank you!&quot;&lt;/i&gt; talk on the possibility of – and countermeasures against – man in the middle attacks against SSL connections.&lt;br /&gt;
&lt;br /&gt;
For your convenience, here is the video:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/vOhCmiqmMgg?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
The slides can be found on &lt;a href=&quot;http://www.slideshare.net/dschneller/man-in-the-middle-no-thank-you&quot;&gt;Slideshare&lt;/a&gt;, the iOS sample application is on&amp;nbsp;&lt;a href=&quot;https://github.com/dschneller/mitm-no-thank-you&quot;&gt;my GitHub page&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Feedback is welcome and appreciated.</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=893660589114026499' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/893660589114026499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/893660589114026499'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2013/06/man-in-middle-no-thank-you.html' title='Man in the Middle? - No, thank you!'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total><georss:featurename>Solingen, Germany</georss:featurename><georss:point>51.1704145 7.0542574999999488</georss:point><georss:box>51.011107 6.7315339999999484 51.329722 7.3769809999999492</georss:box></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-3181074062431575550</id><published>2013-02-26T01:15:00.000+01:00</published><updated>2013-02-26T01:19:56.823+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apple"/><category scheme="http://www.blogger.com/atom/ns#" term="bug"/><category scheme="http://www.blogger.com/atom/ns#" term="caveat"/><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="mac os x"/><title type='text'>Time Machine password not working? </title><content type='html'>&lt;p&gt;I have been meaning to write this down for quite some time, but it always eluded me. When you are using Time Machine to back up your Mac, you get the chance of password-protecting your backups.&lt;/p&gt;&lt;p&gt;Whenever the machine is restarted you will have to unlock the disk by entering the password, unless you store the password for the backup disk in your keychain. For paranoia&#39;s sake (and to keep the password fresh in my memory, just in case) I do not store the password in the keychain.&lt;/p&gt;&lt;p&gt;Now, what happens quite regularly to me is this: I reboot the machine for some reason or other, and while it is doing that, I leave the room and do something else. Before I know it, maybe an hour has passed before I come back. In the meantime, the external Time Machine drive has gone to sleep, because it was not used for an extended period of time. On the screen, there is the password dialog dutifully waiting for me to unlock the protected volume.&lt;/p&gt;&lt;p&gt;As soon as I do so (being very sure the password I type is correct) I hear the external drive spin up again. Because I use a dual-drive RAID enclosure it takes a bit longer to get ready than most drives, because it powers up the drives with a slight delay to go easy on the power supply. All in all I estimate it takes about 10 seconds before the drive is ready. This, however, seems to be longer than the OS is willing to wait for the drive to report back, making it believe that the password was wrong. It will ask for the password again and again, and no matter how often you make sure you typed it correctly, there is no chance of convincing it to accept it.&lt;/p&gt;&lt;p&gt;When this first happened to me, I was getting a little panicky, because I thought that either I was losing my mind, not remembering the very same password I had been entering for months, or that something might be wrong with the drive. Turns out, everything is fine, the drive is mounted with the first attempt, it is just the dialog that remains open and drives you crazy - which, of course, you will not realize if you have a bunch of windows open, preventing you from noticing the icon on the desktop. Watch this short video for of demonstration of what I am talking about:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;640&#39; height=&#39;280&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dyauvxiyMaQziv3qWU-WTtdxwk7eZGL0yKZSG8xYniZzkcCCxY4bq7tGMFsXFx4N6tPG6un5QqPERo&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;As you can see, the backup volume is mounted and the dialog is still up. So if you run into the same situation, don&#39;t worry. Just cancel the dialog and the backup will run normally.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=3181074062431575550' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/3181074062431575550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/3181074062431575550'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2013/02/time-machine-password-not-working.html' title='Time Machine password not working? '/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-7074224712299702859</id><published>2012-05-26T11:49:00.000+02:00</published><updated>2012-11-06T09:39:20.702+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="mobile"/><category scheme="http://www.blogger.com/atom/ns#" term="osgi"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Artikel in JavaSPEKTRUM 03/12</title><content type='html'>&lt;p&gt;In Ausgabe 3/2012 der Fachzeitschrift &lt;a href=&quot;http://www.javaspektrum.de&quot;&gt;JavaSPEKTRUM&lt;/a&gt; wurde kürzlich ein Artikel mit dem Titel &quot;SOA-basierte NoSQL-Lösung im Mobile-Umfeld&quot; veröffentlicht, dessen Co-Autor ich bin. Er beschreibt, wie eine mobile Java-Applikation mittels kreativer Ansätze und einem Mix aus moderner und altbewährter Technik zum Erfolg gebracht wurde.&lt;/p&gt;&lt;p&gt;Der Volltext kann entweder im Browser auf der &lt;a href=&quot;http://www.codecentric.de&quot;&gt;codecentric Homepage&lt;/a&gt; unter der Rubrik &lt;a href=&quot;http://www.codecentric.de/kompetenzen/publikationen/mobil-mit-osgi-und-dbf-soa-basierte-nosql-losung-im-mobile-umfeld/&quot;&gt;Kompetenzen/Publikationen&lt;/a&gt; gelesen werden, steht aber auch &lt;a href=&quot;http://www.codecentric.de/files/2012/05/soa-basierte-NoSQL-loesung-im-mobile-umfeld.pdf&quot; title=&quot;SOA basierte NoSQL Lösung im Mobile Umfeld&quot; alt=&quot;Artikel-PDF&quot;&gt;als PDF&lt;/a&gt; zum Download bereit.&lt;/p&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=7074224712299702859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/7074224712299702859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/7074224712299702859'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2012/05/artikel-in-javaspektrum-0312.html' title='Artikel in JavaSPEKTRUM 03/12'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-9176758546384887167</id><published>2012-01-11T07:00:00.000+01:00</published><updated>2012-01-11T07:00:06.496+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apple"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="ios"/><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="xcode"/><title type='text'>Removing Xcode 3 shared build settings from Xcode 4</title><content type='html'>This is about me getting a substantial amount of grey hair over the past couple of days, trying to hunt down a setting that would cause the current version of Xcode&amp;nbsp;4 to build my iOS projects to an unexpected, but not unfamiliar, taken over from Xcode&amp;nbsp;3, location, but not presenting any obvious way to revert that. &lt;br /&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2 id=&quot;alittlehistory&quot;&gt;A little history&lt;/h2&gt;&lt;br /&gt;
In Xcode3 you could use the preferences dialog to configure custom build output folders. This was necessary when you wanted to organize a somewhat more complex software into several cross-referencing Xcode projects and at the same time retain some sanity when linking and packaging it. &lt;a href=&quot;http://www.clintharris.net/2009/iphone-app-shared-libraries/&quot;&gt;Clint Harris Tutorial&lt;/a&gt; on shared libraries describes it in more detail.&lt;br /&gt;&lt;br /&gt;
The preferences dialog looked like this (image copied from Clint’s site, because I didn’t have any Xcode3 installation lying around anymore):&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-4w3gTi03Cng/TwzRPGCz0gI/AAAAAAAACgQ/2z37wg5MS_E/s1600/screenshot_xcode_global_build_dir.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/-4w3gTi03Cng/TwzRPGCz0gI/AAAAAAAACgQ/2z37wg5MS_E/s1600/screenshot_xcode_global_build_dir.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;In my venerable Xcode&amp;nbsp;3 setup I configured the shared build output to &lt;code&gt;/Users/ds/Documents/cc/SharedBuildOutput&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2 id=&quot;introducingxcodenbsp4&quot;&gt;Introducing Xcode&amp;nbsp;4&lt;/h2&gt;&lt;br /&gt;
In March of 2011 Apple released Xcode4, a major overhaul of the IDE with many new features and, of course, new configuration. At the time of me writing this in January 2012 the latest Xcode release is 4.2.1 and I installed most releases as upgrades on my MacBook Pro. The settings dialog for build locations looks like this in my current installation:&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-jwrxRz5gsGo/TwzRYafaPJI/AAAAAAAACgc/Nz_235BPaI4/s1600/Xcode4BuildLocations.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/-jwrxRz5gsGo/TwzRYafaPJI/AAAAAAAACgc/Nz_235BPaI4/s1600/Xcode4BuildLocations.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;As you can see, there is no trace of the previously configured shared build output setting, let alone my custom directory.&lt;br /&gt;
Ok, so apparently this is the new way of doing things, and starting with new projects will surely apply.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2 id=&quot;notsoquick&quot;&gt;Not so quick…&lt;/h2&gt;&lt;br /&gt;
Despite what (I for) one would expect, nevertheless, this is what a brand new (iOS) project’s actual build setting look like (I filtered to just show the relevant parts):&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-n39Wm-vEJy8/TwzRh26kVfI/AAAAAAAACgo/RKWat-eNOSc/s1600/Xcode4NewProjectWithOldBuildSettings.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/-n39Wm-vEJy8/TwzRh26kVfI/AAAAAAAACgo/RKWat-eNOSc/s1600/Xcode4NewProjectWithOldBuildSettings.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Switching from the &lt;em&gt;Combined&lt;/em&gt; to the &lt;em&gt;Levels&lt;/em&gt; view shows that the setting is clearly not coming from the project itself, which explains why even a freshly created project could know about this old folder:&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-bXfjyk0ftIU/TwzRpJaLnBI/AAAAAAAACg0/HmlG-XshB2k/s1600/OldSettingsComeFromDefault.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/-bXfjyk0ftIU/TwzRpJaLnBI/AAAAAAAACg0/HmlG-XshB2k/s1600/OldSettingsComeFromDefault.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
This clearly goes against the current Xcode standard of placing build products into so-called “Derived Data” subfolder folders with (partly) random names. Build scripts can use these by referring to them using the environment variables, but more often than not, leaving the (now already) trodden path of the new defaults will cause more trouble than it’s usually worth.&lt;br /&gt;&lt;br /&gt;
“How do I fix this?”, you might ask. Well, that’s what I asked myself, too, and it took me a few days to finally figure it out. Remember that Xcode&amp;nbsp;4 no longer shows this path in its Build Locations preferences, so this is obviously not getting us any further. &lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2 id=&quot;circumventingtheproblem&quot;&gt;Circumventing the problem…&lt;/h2&gt;&lt;br /&gt;
Changing the folder at the project level works, overriding the default. As soon as you have created a new project, you can change the “Build projects path” and “Intermediate Build Files Path” to simply &lt;code&gt;build&lt;/code&gt;. This should be the same value that’s the default in a fresh Xcode&amp;nbsp;4 installation.&lt;br /&gt;&lt;br /&gt;
I like to keep my build settings in a separate &lt;code&gt;.xcconfig&lt;/code&gt; file that makes it easier to share and change settings with other project contributors using version control. If you do that, you could also use that to override the old default by putting these lines it it:&lt;br /&gt;&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&lt;code&gt;SYMROOT = build
OBJROOT = build
&lt;/code&gt;&lt;/pre&gt;However, that, too, requires you to remember making the change for each and every new project. Surely it would be better to get rid of that now-unwanted setup.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2 id=&quot;orsolvingit&quot;&gt;…or solving it&lt;/h2&gt;&lt;br /&gt;
Albeit there is no UI preference setting to modify the &lt;code&gt;SYMROOT&lt;/code&gt; and &lt;code&gt;OBJROOT&lt;/code&gt; settings in Xcode&amp;nbsp;4 anymore, apparently it still honors them from the previous Xcode&amp;nbsp;3 installation. So in order to reset them, we need to know where they are stored. I did not know anything more than that it must be a user-specific setting, because a newly created account did not use it. So – after deleting everything from &lt;code&gt;~/Library/Developer/Xcode/DerivedData&lt;/code&gt; – I tried (in this order):&lt;br /&gt;&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&lt;code&gt;$ grep -r SYMROOT ~/Library/Developer 2&amp;gt;/dev/null
$ grep -r SYMROOT ~/Library/Application\ Support/Developer 2&amp;gt;/dev/null
$ grep -r SYMROOT ~/Library/Preferences 2&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Well, actually I tried searching for &lt;code&gt;Documents/cc/SharedBuildOutput&lt;/code&gt; first, but that also matched several archived applications. The last command revealed this:&lt;br /&gt;&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&lt;code&gt;Binary file ./com.apple.dt.Xcode.plist matches
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Converting the first match to XML with &lt;code&gt;plutil -convert xml1 -o tmp.xml com.apple.dt.Xcode.plist&lt;/code&gt; and searching inside it I found this:&lt;br /&gt;&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&lt;code&gt;&amp;lt;key&amp;gt;IDEApplicationwideBuildSettings&amp;lt;/key&amp;gt;
&amp;lt;dict&amp;gt;
    ...
    &amp;lt;key&amp;gt;SYMROOT&amp;lt;/key&amp;gt;
    &amp;lt;string&amp;gt;/Users/ds/Documents/cc/SharedBuildOutput&amp;lt;/string&amp;gt;
    ...
&amp;lt;/dict&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Instead of removing these two lines and converting the file back to its binary format, I deleted that entry with the handy little &lt;a href=&quot;http://www.nightproductions.net/prefsetter.html&quot;&gt;PrefSetter&lt;/a&gt; application by navigating to the &lt;code&gt;com.apple.dt.Xcode&lt;/code&gt; domain and searching for &lt;em&gt;SYMROOT&lt;/em&gt; in there. That way there is no risk of making any typos, damaging the file. &lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-eKIktI8O80w/TwzR1K_RO-I/AAAAAAAAChA/7_8vrvYe8XI/s1600/PrefSetter.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/-eKIktI8O80w/TwzR1K_RO-I/AAAAAAAAChA/7_8vrvYe8XI/s1600/PrefSetter.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Do not forget to save the change!&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2 id=&quot;success&quot;&gt;Success!&lt;/h2&gt;&lt;br /&gt;
Restarting Xcode and looking at the build settings of the very same “Test” project created earlier proves that the change had the desired effect:&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-GUhXHou_pNg/TwzR8j0JtuI/AAAAAAAAChM/OQEgY97GG4A/s1600/FixedBuildLocations.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/-GUhXHou_pNg/TwzR8j0JtuI/AAAAAAAAChM/OQEgY97GG4A/s1600/FixedBuildLocations.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Of course, as a last resort (maybe there are more problems with your Xcode settings?), you could also just delete – or rename – the &lt;code&gt;com.apple.dt.Xcode.plist&lt;/code&gt; file and have Xcode start afresh, even though I noticed when I tried this, that several settings were left unchanged, e.&amp;nbsp;g. Source Trees. These are apparently stored somewhere else…</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=9176758546384887167' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/9176758546384887167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/9176758546384887167'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2012/01/removing-xcode-3-shared-build-settings.html' title='Removing Xcode 3 shared build settings from Xcode 4'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-4w3gTi03Cng/TwzRPGCz0gI/AAAAAAAACgQ/2z37wg5MS_E/s72-c/screenshot_xcode_global_build_dir.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-4544877604220857365</id><published>2012-01-02T09:00:00.000+01:00</published><updated>2012-01-02T09:00:06.648+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apple"/><category scheme="http://www.blogger.com/atom/ns#" term="cocoa"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="ios"/><category scheme="http://www.blogger.com/atom/ns#" term="standards"/><category scheme="http://www.blogger.com/atom/ns#" term="xml"/><title type='text'>SOAP web services with iOS</title><content type='html'>&lt;p&gt;Fresh on the&amp;nbsp;&lt;a href=&quot;http://blog.codecentric.de/&quot; target=&quot;_blank&quot;&gt;codecentric blog&lt;/a&gt;&amp;nbsp;is my new post about using &lt;a href=&quot;http://blog.codecentric.de/en/2012/01/soap-web-services-with-ios/&quot; target=&quot;_blank&quot;&gt;SOAP web services from an iOS client&lt;/a&gt; application.&lt;/p&gt;
&lt;p&gt;It features a short comparison of the current state of frameworks and tools with the Java world, and then focusses on the sudzc open source library that takes a very interesting approach in generating web service client artifacts by transforming the service&#39;s WSDL into Objective-C classes using XSL transformations.&lt;/p&gt;
&lt;p&gt;The post is &lt;a href=&quot;http://blog.codecentric.de/2012/01/soap-webservices-mit-ios/&quot; target=&quot;_blank&quot;&gt;available in German&lt;/a&gt; as well.&lt;/p&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=4544877604220857365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/4544877604220857365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/4544877604220857365'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2012/01/soap-web-services-with-ios.html' title='SOAP web services with iOS'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Solingen, Germany</georss:featurename><georss:point>51.1704145 7.0542575</georss:point><georss:box>51.0907675 6.8963290000000006 51.2500615 7.212186</georss:box></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-9145332053481810838</id><published>2011-10-17T21:43:00.000+02:00</published><updated>2011-12-30T18:25:19.986+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="findbugs"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="quality"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="sonar"/><category scheme="http://www.blogger.com/atom/ns#" term="standards"/><title type='text'>Why good metrics do not equal good quality</title><content type='html'>&lt;p&gt;A short while ago I posted an article on the &lt;a href=&quot;http://www.codecentric.de&quot;&gt;codecentric&lt;/a&gt; blog about why good metrics can be, but need not be equal to good software quality. As I wrote earlier, I will add links to this blog whenever I post something of interest to the company site.&lt;/p&gt;
&lt;p&gt;The post is available in both English and German at &lt;a href=&quot;http://blog.codecentric.de/en/2011/10/why-good-metrics-values-do-not-equal-good-quality/&quot;&gt;http://blog.codecentric.de/en/2011/10/why-good-metrics-values-do-not-equal-good-quality&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=9145332053481810838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/9145332053481810838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/9145332053481810838'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2011/10/why-good-metric-do-not-equal-good.html' title='Why good metrics do not equal good quality'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32710003.post-210033358597640700</id><published>2011-08-02T17:50:00.000+02:00</published><updated>2011-08-02T17:50:00.152+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apple"/><category scheme="http://www.blogger.com/atom/ns#" term="internet"/><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="mac os x"/><category scheme="http://www.blogger.com/atom/ns#" term="safari"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>List all open Safari tabs across windows</title><content type='html'>Over the course of a workday I tend to accumulate lots of browser windows, and even more tabs inside them. &amp;nbsp;Up to now, I would often lose track of what which tabs were open in which window and in which space. In the end, I would often just open a page again in a new tab of the window I happened to be in at the moment, increasing the overall clutter.&lt;br /&gt;
With the advent of persistent application state across reboots or application restarts as well as fullscreen apps in Mac OS X Lion that situation has gotten even worse.&lt;br /&gt;
&lt;br /&gt;
The &quot;Window&quot; menu in Safari does not help too much, because it only shows the tabs of the currently focussed window. Today, while wondering why a website was not displaying correctly, I accidentally found a remarkably simple (and built-in!) way of showing all open tabs across all open Safari windows.&lt;br /&gt;
&lt;br /&gt;
Just hit Cmd-Alt-A or pick &quot;Activity&quot; from the Window menu in any Safari window to open or focus the Activity overlay window.&lt;br /&gt;
&lt;br /&gt;
It is usually used to determine what servers different parts of any given website are loaded from. However, even if you are not interested in that, this little popup contains a list of all currently open tabs, regardless of the window they are in.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://3.bp.blogspot.com/--BTjbiN3Pxc/TjgW0dSbysI/AAAAAAAACfE/_pZZsfLVHqg/s1600/Screen+Shot+2011-08-02+at+17.14.33.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/--BTjbiN3Pxc/TjgW0dSbysI/AAAAAAAACfE/_pZZsfLVHqg/s1600/Screen+Shot+2011-08-02+at+17.14.33.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Double clicking any entry in there will take you to the correct window and focus the desired tab. Nice and easy, not even an extension needs to be installed :) The only drawback I see is that you cannot sort that list, clicking the &quot;Address&quot; column header has no effect.&lt;br /&gt;
&lt;br /&gt;
A final tip: When you open the window, it might have one or more of the entries expanded, making the list overly long. Even though there is no collapse-all feature I could find, you can rather quickly do so manually by selecting the top entry in the list and then repeatedly hit the left and down arrow keys. Left arrow will close the currently selected item, down arrow move to the next entry. Even with lots of tabs listed, within a few seconds you should make your way all the way down, leaving a nice clean list of tabs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32710003&amp;postID=210033358597640700' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/210033358597640700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32710003/posts/default/210033358597640700'/><link rel='alternate' type='text/html' href='http://www.danielschneller.com/2011/08/list-all-open-safari-tabs-across.html' title='List all open Safari tabs across windows'/><author><name>Daniel Schneller</name><uri>http://www.blogger.com/profile/10703859800169283952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/--BTjbiN3Pxc/TjgW0dSbysI/AAAAAAAACfE/_pZZsfLVHqg/s72-c/Screen+Shot+2011-08-02+at+17.14.33.png" height="72" width="72"/><thr:total>2</thr:total></entry></feed>