<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Berker]]></title><description><![CDATA[I'm Berker,  a software developer specialized in flutter, a professional orchestra musician, bassoonist to be exact, and an amateur go player.]]></description><link>https://berkersen.dev</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 01:47:54 GMT</lastBuildDate><atom:link href="https://berkersen.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Practice Suite 2.1.0]]></title><description><![CDATA[Hi everyone! After a long break, I finally manage to release an update for Practice Suite with much needed bug fixes and requested features. Here’s what’s new:
🚀 New Features

Play Progress in Recording Tiles: You can now see your play progress dire...]]></description><link>https://berkersen.dev/practice-suite-210</link><guid isPermaLink="true">https://berkersen.dev/practice-suite-210</guid><category><![CDATA[Flutter]]></category><category><![CDATA[music]]></category><category><![CDATA[music app]]></category><category><![CDATA[practice]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Fri, 16 Aug 2024 11:52:21 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/EjmcT09e3Jg/upload/0987b1d07f0008dc9fa0823673be33c4.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone! After a long break, I finally manage to release an update for Practice Suite with much needed bug fixes and requested features. Here’s what’s new:</p>
<h4 id="heading-new-features">🚀 New Features</h4>
<ul>
<li><p><strong>Play Progress in Recording Tiles:</strong> You can now see your play progress directly on recording tiles where the recording duration is, making it easier to track your practice sessions at a glance.</p>
</li>
<li><p><strong>Keep Screen Awake for Metronome, Tuner, and Recorder:</strong> No more interruptions! Your screen will now stay awake while using the metronome, tuner, or recorder, so you can stay focused on your practice.</p>
</li>
<li><p><strong>Persist Metronome Values on Restart:</strong> We've added the ability for the app to remember your metronome settings even after a restart, ensuring your workflow remains uninterrupted.</p>
</li>
<li><p><strong>Themable Adaptive Launcher Icons:</strong> Customize your experience further with themable adaptive launcher icons, blending perfectly with your device’s theme.</p>
</li>
</ul>
<h4 id="heading-design-enhancements">🎨 Design Enhancements</h4>
<ul>
<li><p><strong>Material 3 Design:</strong> The app has been updated to the latest Material 3 design standards, offering a more modern and intuitive user interface.</p>
</li>
<li><p><strong>Background Color of On/Off Buttons:</strong> I’ve tweaked the background color of the on/off buttons for better visual clarity and accessibility.</p>
</li>
</ul>
<h4 id="heading-under-the-hood">⚙️ Under the Hood</h4>
<ul>
<li><p><strong>Updated Packages:</strong> I’ve updated various packages to improve performance, stability, and security.</p>
</li>
<li><p><strong>Flutter 3.24:</strong> The app now runs on the latest version of Flutter, bringing performance optimizations and new capabilities.</p>
</li>
</ul>
<h4 id="heading-bug-fixes">🛠️ Bug Fixes</h4>
<ul>
<li><p><strong>Squashed Bugs:</strong> A number of pesky bugs have been fixed, ensuring a smoother experience.</p>
</li>
<li><p><strong>Improved Translations:</strong> I’ve refined the translations across the app to better serve our global user base.</p>
</li>
</ul>
<p>Enjoy the update and if you have questions or issues, hit the <a target="_blank" href="https://matrix.to/#/#practice_suite:matrix.org">matrix channel</a> or <a target="_blank" href="https://codeberg.org/Berker/practice_suite/issues">projects issues</a> page. Downloads should soon be available through <a target="_blank" href="https://play.google.com/store/apps/details?id=com.berkersen.practicesuite">Play Store</a>, <a target="_blank" href="https://apps.apple.com/us/app/practice-suite/id1668677376">App Store</a>, <a target="_blank" href="https://f-droid.org/en/packages/com.berkersen.practicesuite/">F-Droid</a> and <a target="_blank" href="https://codeberg.org/Berker/practice_suite/releases">Codeberg releases</a>.</p>
]]></content:encoded></item><item><title><![CDATA[Keyoxide Mobile 2.4.0]]></title><description><![CDATA[Hey everyone,
I’ve got some exciting news – Keyoxide Mobile just got a fresh update! 🎉 I’ve been working hard to bring you version 2.4.0, and it’s packed with the most requested feature: offline mode.
What’s New in Keyoxide Mobile 2.4.0?
Offline-Mod...]]></description><link>https://berkersen.dev/keyoxide-mobile-240</link><guid isPermaLink="true">https://berkersen.dev/keyoxide-mobile-240</guid><category><![CDATA[Keyoxide]]></category><category><![CDATA[OnlineIdentity]]></category><category><![CDATA[Flutter]]></category><category><![CDATA[privacy]]></category><category><![CDATA[Security]]></category><category><![CDATA[Online security]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Thu, 18 Jul 2024 10:32:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/eFgjzZ0FeXs/upload/48b1f8cf0d95206a478dba1fe98d87f7.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey everyone,</p>
<p>I’ve got some exciting news – Keyoxide Mobile just got a fresh update! 🎉 I’ve been working hard to bring you version 2.4.0, and it’s packed with the most requested feature: offline mode.</p>
<p><strong>What’s New in Keyoxide Mobile 2.4.0?</strong></p>
<p><strong>Offline-Mode:</strong> If you are stuck without internet and need to access your contacts or your full profile, I’ve got you covered. A copy of your full profile is now saved locally, encrypted on the device, and accessed when needed for user profiles and contacts. A 'last refreshed' date is also shown so you will know how old the profile is. With this, you can now open your contacts and profiles even when you’re offline. No more scrambling for Wi-Fi or data!</p>
<p><strong>Swipe Right to Refresh on Contact Tile:</strong> I wanted to make refreshing your contact profiles as smooth as possible. Now, you can just swipe right on a contact tile to update it. It’s quick, easy, and super convenient.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1721224410140/dd9444aa-00e2-4d32-b7d3-612bc966172f.png" alt class="image--center mx-auto" /></p>
<p><strong>Refresh All Contacts at Once from the Menu:</strong> Got a bunch of contacts that need updating? No problem. Head to the menu and refresh all your contacts at once. This should save you a ton of time and keep everything up-to-date with a single tap.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1721224480302/b8d6124c-8e4f-4e2a-a648-ac40f81a3249.png" alt class="image--center mx-auto" /></p>
<p><strong>Bug Fixes</strong></p>
<p><strong>Unresponsive UI on Language Change When Offline:</strong> I fixed a pesky bug that was making the app unresponsive when you changed the language while offline. Now, everything should work seamlessly, whether you’re connected to the internet or not.</p>
<p><strong>Updates</strong></p>
<p><strong>Updated Packages and Flutter Version:</strong> To make sure everything runs smoothly, I’ve updated the packages and upgraded Flutter to version 3.22.2. This means better stability, security, and performance for you.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">⚠</div>
<div data-node-type="callout-text">This update will wipe out your profiles and contacts locally, please back up your user profiles and contacts before updating.</div>
</div>

<p>As always, your feedback is super important to me. Let me know your thoughts, suggestions, or any issues you encounter on <a target="_blank" href="https://matrix.to/#/%23keyoxide-mobile:matrix.org">Matrix channel</a> or <a target="_blank" href="https://community.keyoxide.org/">community forum</a>.</p>
<p>If you would like to help with the effort, hit our websites <a target="_blank" href="https://keyoxide.org/">Keyoxide</a>, <a target="_blank" href="https://mobile.keyoxide.org/">Keyoxide Mobile</a>, <a target="_blank" href="https://docs.keyoxide.org/wiki/keyoxide/">Keyoxide Docs</a> and of course <a target="_blank" href="https://translate.codeberg.org/projects/keyoxide/keyoxide-mobile/">translations</a>.</p>
<p>Happy updating!</p>
]]></content:encoded></item><item><title><![CDATA[Keyoxide Mobile 2.3.0 Enhancing Your Decentralized Identity Experience]]></title><description><![CDATA[In this update, I continue to prioritize user-requested features while preparing for the more extensive work needed to support offline functionality. Here’s a detailed look at what’s new:
New Features and Enhancements
1. Search History: Keyoxide Mobi...]]></description><link>https://berkersen.dev/keyoxide-mobile-230-enhancing-your-decentralized-identity-experience</link><guid isPermaLink="true">https://berkersen.dev/keyoxide-mobile-230-enhancing-your-decentralized-identity-experience</guid><category><![CDATA[Flutter]]></category><category><![CDATA[Keyoxide]]></category><category><![CDATA[keyoxide mobile]]></category><category><![CDATA[OnlineIdentity]]></category><category><![CDATA[identity-management]]></category><category><![CDATA[digital identity]]></category><category><![CDATA[Mobile Development]]></category><category><![CDATA[mobile app development]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Sun, 02 Jun 2024 14:53:30 GMT</pubDate><content:encoded><![CDATA[<p>In this update, I continue to prioritize user-requested features while preparing for the more extensive work needed to support offline functionality. Here’s a detailed look at what’s new:</p>
<p>New Features and Enhancements</p>
<p>1. Search History: Keyoxide Mobile now keeps a history of your profile searches, making it easier to revisit previously searched profiles without re-entering the identifiers. This means you can quickly and conveniently access your recent searches and verify identities more efficiently. With the minus button on the right side of the identifier, you can remove the search from the list.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717158701441/276550a7-427e-455f-89bd-5f4f3d6c5851.png" alt class="image--center mx-auto" /></p>
<p>2. Long Press to Copy Links: Sharing profile information is now more straightforward. With the new long press feature, you can copy all links to your clipboard with ease, streamlining the process of sharing decentralized identity proofs. This enhancement makes it simpler to communicate identity details across different platforms and services. Also the snack-bar is now shown on the top of your screen to avoid collision.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717158719543/01bea2cc-f6e6-4907-8757-d696c5dc4925.png" alt class="image--center mx-auto" /></p>
<p>3. Themed Adaptive App Icons: For Android users, the app icon is now adaptive and can be themed with monochrome icons. This customization aligns with the latest Android design standards, allowing for a more personalized home screen experience. Now, your app icon can match your device’s theme, adding a touch of personal flair to your interface.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717158744694/07a38484-b9f5-4db8-bc15-3a2bae2e9b06.png" alt class="image--center mx-auto" /></p>
<p>4. Disable Server Update Checks: Users who utilize a custom implementation of the Keyoxide server can now disable the ‘server update check’. This feature prevents obsolete update warnings and ensures a smoother experience for those running custom setups. This is especially useful for advanced users who prefer managing their own server environments.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717158912122/b0668987-42c0-4835-a230-ca83e25fcdff.png" alt class="image--center mx-auto" /></p>
<p>5. Disable Animations: For those who find animations in profile page distracting, you can now turn them off in the settings.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717332222447/bf4b8907-e919-4afd-8588-99b08d6d8f32.png" alt class="image--center mx-auto" /></p>
<p>6. Upstream Package Fixes: I’ve included several upstream fixes for the packages used within the app. These fixes enhance the overall stability and performance, ensuring that Keyoxide Mobile runs smoothly and efficiently. You can expect a more reliable experience with fewer bugs and issues.</p>
<p>7. Flutter Update: The app has been updated to the latest version of Flutter (3.22.1), bringing improved performance, new features, and better compatibility with modern devices. This update ensures that the app leverages the latest advancements in the Flutter framework, providing a more robust and responsive user experience.</p>
<p>8. Updated Translations: Translations are getting there but still not where we want it to be, currently at %67. Keyoxide supports German, English, Dutch, French, Galician, Polish, Spanish, Turkish, Portuguese, Chinese, Japanese at the moment of writing. if you have a spare minute and happen to speak one of these languages, we very much appreciate if you visit our <a target="_blank" href="https://translate.codeberg.org/projects/keyoxide/keyoxide-mobile/">translation page</a> and help with the translations.</p>
<p>Get the Update</p>
<p>I invite you to download or update to the latest version of Keyoxide Mobile from your preferred app store. For more details on using Keyoxide and creating decentralized identities, visit our official website <a target="_blank" href="https://keyoxide.org/">Keyoxide</a>, <a target="_blank" href="https://mobile.keyoxide.org/">Keyoxide Mobile</a>, <a target="_blank" href="https://docs.keyoxide.org/wiki/keyoxide/">Keyoxide Docs</a> and <a target="_blank" href="https://codeberg.org/Berker/keyoxide-flutter/src/branch/master/CHANGELOG.md">change-log</a>.</p>
<p>Stay tuned for more updates, and thank you for being part of the Keyoxide community! Special thanks to everyone who submits these amazing feature requests.</p>
<p>Feel free to leave any feedback or questions on our <a target="_blank" href="https://matrix.to/#/%23keyoxide-mobile:matrix.org">Matrix channel</a> or <a target="_blank" href="https://community.keyoxide.org/">community forum</a>. Your input is invaluable as we continue to enhance the Keyoxide experience.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">⚠</div>
<div data-node-type="callout-text">Although it has been tested, please ensure you back up your profiles before updating.</div>
</div>]]></content:encoded></item><item><title><![CDATA[Keyoxide Mobile 2.2.0]]></title><description><![CDATA[Hi everyone! This will be a very short one I promise. On this update, I implemented some of the user requested features and I will walk you through two of them.


Language selection in settings
 There is a new section in the settings > system called ...]]></description><link>https://berkersen.dev/keyoxide-mobile-220</link><guid isPermaLink="true">https://berkersen.dev/keyoxide-mobile-220</guid><category><![CDATA[Keyoxide]]></category><category><![CDATA[keyoxide mobile]]></category><category><![CDATA[OnlineIdentity]]></category><category><![CDATA[privacy]]></category><category><![CDATA[Online security]]></category><category><![CDATA[identity-management]]></category><category><![CDATA[Identity]]></category><category><![CDATA[Flutter]]></category><category><![CDATA[Mobile Development]]></category><category><![CDATA[Android]]></category><category><![CDATA[iOS]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Mon, 29 Apr 2024 19:40:33 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/wpi3sDUrSEk/upload/3a1f5cf93f9f96b20e86630b61cbc207.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone! This will be a very short one I promise. On this update, I implemented some of the user requested features and I will walk you through two of them.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714296281184/5da8d27b-94d6-47df-8ecc-e443c0c75f03.png" alt class="image--center mx-auto" /></p>
<ol>
<li><p><strong>Language selection in settings</strong></p>
<p> There is a new section in the settings &gt; system called language now. You will be able to choose your preferred language or default to system which follows the system language.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714297128629/c5073ec5-f761-4c39-a61f-2ce817618d2e.png" alt class="image--center mx-auto" /></p>
</li>
<li><p><strong>Profile privacy settings</strong></p>
<p> There is a new switch on the profile cards 'Hide profile', when enabled the profile will be excluded from the profile list. In the settings, you can choose if you want to include the hidden profiles in the list. If the authentication is enabled, 'Show hidden profiles' switch in the settings is protected with authentication.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714298236576/10830bc7-3069-4180-b4be-1733316793a2.png" alt class="image--center mx-auto" /></p>
</li>
</ol>
<p>On top of the new features, bunch of other stuff was updated under the hood. Lots of upstream fixes and performance improvements from the packages used. Also we now use the latest gradle build tools to build Android versions. And the flutter was updated to the latest version as well which the app was built with. I fixed and tested the data migration issue as well, your data should persist between the updates but I would still backup the contacts and profiles just in case.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">⚠</div>
<div data-node-type="callout-text"><strong>Even with the resolved data migration issue, please backup your contacts and profiles before updating to prevent data loss. Especially for F-Droid builds.</strong></div>
</div>

<p>This is it for now. Thanks for reading, enjoy the update! For download links, visit <a target="_blank" href="https://mobile.keyoxide.org/">Keyoxide Mobile</a>. If you'd like to help with the effort, hit <a target="_blank" href="https://translate.codeberg.org/projects/keyoxide/keyoxide-mobile/">Keyoxide translations</a>, <a target="_blank" href="https://codeberg.org/keyoxide">Keyoxide repository</a>, for donations <a target="_blank" href="https://opencollective.com/keyoxide">Open Collective</a>, wanna drop by and say hello <a target="_blank" href="https://matrix.to/#/#keyoxide-space:matrix.org">Keyoxide Matrix Space</a> or <a target="_blank" href="https://community.keyoxide.org/">Community Forum</a>.</p>
]]></content:encoded></item><item><title><![CDATA[Keyoxide Mobile 2.1.0]]></title><description><![CDATA[Adds Contacts Feature and Guided Tour
Hi everyone, it's been a month again and here we are with another update. In this blog post, we'll dive into the details of these new additions and how they enhance the user experience.

This update has a bunch o...]]></description><link>https://berkersen.dev/keyoxide-mobile-210</link><guid isPermaLink="true">https://berkersen.dev/keyoxide-mobile-210</guid><category><![CDATA[Keyoxide]]></category><category><![CDATA[keyoxide mobile]]></category><category><![CDATA[OnlineIdentity]]></category><category><![CDATA[identity-management]]></category><category><![CDATA[Identity]]></category><category><![CDATA[digital identity management]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Tue, 05 Mar 2024 10:22:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/Akt_a7AIbRg/upload/41f11ee085cbb85e07b07f78f9c937b1.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Adds Contacts Feature and Guided Tour</p>
<p>Hi everyone, it's been a month again and here we are with another update. In this blog post, we'll dive into the details of these new additions and how they enhance the user experience.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709580125260/8ad05576-7e36-41ce-9871-9662d841784c.png" alt class="image--center mx-auto" /></p>
<p>This update has a bunch of small changes and improvements and two new features. I'll start with the new features:</p>
<p>Contacts Feature:</p>
<p>One of the most significant addition in this release is the contacts feature. I have been meaning to implement this since some time because there are lots of people in Keyoxide circle I'd love to follow their accounts of and remembering their fingerprints or taking a note of them is just too much of a hassle. Users can now easily add profiles of people they know to their address book (contacts) within the app, view their profiles on tap or delete them on left swipe. Just a convenient and quick way to store your most visited profiles. They can also import &amp; export the contacts to &amp; from a json file. Because of a bug in the file_picker package, for now, export feature is implemented a bit different depending on the platform, where on iOS, the contacts are exported directly to a keyoxide_contacts.json file in the application folder and on Android, you are able to chose the export directory yourself.</p>
<p>Guided Tour:</p>
<p>In addition to the new contacts feature, we have introduced a guided tour that walks users through the app's most important features at first launch. This tutorial helps users understand how to get started with managing their personal information.</p>
<p>Other small changes:</p>
<ol>
<li><p>Flutter is updated and app is built with the latest version to date 3.19.2 which has a lot of benefits and performance improvements.</p>
</li>
<li><p>All the packages and dependencies are updated to their latest.</p>
</li>
<li><p>Translations are more complete now, if you would like to help with it, hit our <a target="_blank" href="https://translate.codeberg.org/projects/keyoxide/keyoxide-mobile/">codeberg translations</a>.</p>
</li>
<li><p>UI and bug fixes.</p>
</li>
</ol>
<blockquote>
<p>IMPORTANT INFO: The update might delete your current profiles and settings. Please export your profiles before updating!</p>
</blockquote>
<p>That's it for this update. Enjoy and drop by the <a target="_blank" href="https://community.keyoxide.org/">community forum</a> or <a target="_blank" href="https://matrix.to/#/#keyoxide-space:matrix.org">matrix space</a> if you wanna say hi.</p>
]]></content:encoded></item><item><title><![CDATA[Keyoxide Mobile 2.0.0]]></title><description><![CDATA[After a lot of work and effort, we are rolling out an exciting update for Keyoxide Mobile, bringing a host of new features and improvements that enhance user experience and security. In this blog post, I'll delve into the details of the latest update...]]></description><link>https://berkersen.dev/keyoxide-mobile-200</link><guid isPermaLink="true">https://berkersen.dev/keyoxide-mobile-200</guid><category><![CDATA[Keyoxide]]></category><category><![CDATA[keyoxide mobile]]></category><category><![CDATA[privacy]]></category><category><![CDATA[OnlineIdentity]]></category><category><![CDATA[Decentralised Identity]]></category><category><![CDATA[decentralization]]></category><category><![CDATA[identity-management]]></category><category><![CDATA[Flutter]]></category><category><![CDATA[Mobile Development]]></category><category><![CDATA[mobile app development]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Sun, 04 Feb 2024 09:51:26 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1707082297758/ec341c8d-9b30-41c6-bfcc-ad1315164a19.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>After a lot of work and effort, we are rolling out an exciting update for <a target="_blank" href="https://mobile.keyoxide.org/">Keyoxide Mobile</a>, bringing a host of new features and improvements that enhance user experience and security. In this blog post, I'll delve into the details of the latest update.</p>
<hr />
<h3 id="heading-new-additions">New Additions</h3>
<h4 id="heading-advanced-asp-profile-management">Advanced ASP Profile Management</h4>
<p><a target="_blank" href="https://keyoxide.org/">Keyoxide</a> now allows users to have comprehensive control over their ASP (<em>Ariadne Signature Profile</em>) profiles. The latest update enables you to:</p>
<ul>
<li><p><strong>Create, edit, delete, import, and export profiles</strong> effortlessly.</p>
</li>
<li><p><strong>Manage claims</strong> associated with your ASP profiles, ensuring you have full control over your online identity.</p>
</li>
</ul>
<h4 id="heading-enhanced-pgp-amp-asp-profile-capabilities">Enhanced PGP &amp; ASP Profile Capabilities</h4>
<p>Storing multiple PGP and ASP profiles is now possible, allowing for greater flexibility and convenience in managing various identities or roles. Let's say you have different accounts for business and private purposes, you can now separate your claims and save them in individual profiles within the app.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706920073941/4f138d47-6059-43f1-b954-4ba2accc58fa.png" alt class="image--center mx-auto" /></p>
<h4 id="heading-custom-domain-and-validation-support">Custom Domain and Validation Support</h4>
<p>Keyoxide now supports custom domains. If you host your verification or ASPE server yourself, you will be able to validate and add your own domain (server) and manage your profiles privately within the app.</p>
<h4 id="heading-server-update-availability">Server Update Availability</h4>
<p>With the new network section in the settings, you will stay informed about server updates and check if an update is available, keeping you up-to-date with the latest enhancements.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706920099531/3439bcf4-d9e9-4b53-8237-1704791a4825.png" alt class="image--center mx-auto" /></p>
<h4 id="heading-improved-security-with-biometric-and-other-authentication-methods">Improved Security with Biometric and Other Authentication Methods</h4>
<p>If you have already setup a local authentication for your device such as biometric, PIN, password, pattern, you name it.. App takes advantage of it to protect your profiles so an unknown person can't mess your profiles or delete them. Don't forget to turn on a authentication method from your device system settings.</p>
<p>User profiles and user defined settings settings are now saved on the device encrypted.</p>
<h4 id="heading-expanded-language-support">Expanded Language Support</h4>
<p>There are two new languages in our <a target="_blank" href="https://translate.codeberg.org/projects/keyoxide/keyoxide-mobile/">weblate translations</a> portal. <strong>Portuguese and Chinese</strong>, catering to a wider audience and enhancing the app's accessibility. With that we have ten supported languages, Chinese, German, English, Dutch, French, Galician, Polish, Portuguese, Spanish and Turkish.</p>
<h4 id="heading-bug-fixes-and-ui-overhauls">Bug Fixes and UI Overhauls</h4>
<p>The update addresses numerous bugs and UI inconsistencies, ensuring a smoother, more reliable experience.</p>
<h3 id="heading-changes">Changes</h3>
<h4 id="heading-revamped-localization-service">Revamped Localization Service</h4>
<p>There is a new localization service with in-app translation strings, we no longer download and cache the latest translations on the app launch but get the translation on build time and embed them in the app. Which solved a lot of issues our users were having..</p>
<h4 id="heading-updated-user-interface">Updated User Interface</h4>
<p>Significant changes have been made to the user view, profile display view, and Settings UI to accommodate the new features implemented.</p>
<h4 id="heading-technical-updates">Technical Updates</h4>
<p>Under the hood, we updated all the packages to their latest and upgraded Flutter to version 3.16.9, ensuring better performance and compatibility.</p>
<hr />
<p>This update represents a significant step forward for <a target="_blank" href="https://keyoxide.org/">Keyoxide</a> in its mission to provide a secure and user-friendly platform for decentralized identity verification. We hope with it's new features and improvements, <a target="_blank" href="https://keyoxide.org/">Keyoxide</a> is poised to become an even more essential tool for anyone looking to manage their online identity with ease and security.</p>
<p>For download links and more, please hit the <a target="_blank" href="https://mobile.keyoxide.org/">Keyoxide Mobile</a> website. Stay tuned for more updates and improvements from <a target="_blank" href="https://keyoxide.org/">Keyoxide</a>!</p>
]]></content:encoded></item><item><title><![CDATA[Keyoxide Mobile 1.6.0]]></title><description><![CDATA[Hello, everyone! I hope you all had a fantastic summer. Yarmo released the API update much earlier, but we held off until it was fully matured for the app. Now, it's ripe and ready for you to enjoy. If you're not yet familiar with the ASP profiles (A...]]></description><link>https://berkersen.dev/keyoxide-mobile-160</link><guid isPermaLink="true">https://berkersen.dev/keyoxide-mobile-160</guid><category><![CDATA[Keyoxide]]></category><category><![CDATA[Cryptography]]></category><category><![CDATA[OnlineIdentity]]></category><category><![CDATA[Security]]></category><category><![CDATA[privacy]]></category><category><![CDATA[Flutter]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Thu, 05 Oct 2023 10:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/tZc3vjPCk-Q/upload/93cd5c4d19150c485b6cd6cccd104257.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello, everyone! I hope you all had a fantastic summer. <a target="_blank" href="https://keyoxide.org/aspe:keyoxide.org:TOICV3SYXNJP7E4P5AOK5DHW44">Yarmo</a> released the API update much earlier, but we held off until it was fully matured for the app. Now, it's ripe and ready for you to enjoy. If you're not yet familiar with the ASP profiles (Ariadne Signature Profile), I recommend checking out <a target="_blank" href="https://blog.keyoxide.org/">Keyoxide blog</a> and the <a target="_blank" href="https://blog.keyoxide.org/update-6/">latest post</a> for more information. Here are some exciting highlights from this release:</p>
<p><strong>Support for</strong> <a target="_blank" href="https://blog.keyoxide.org/ariadne-signature-profiles/"><strong>ASP Profiles</strong></a><strong>:</strong> I won't delve into the technical details here, but for non-technical users interested in creating a profile, you can easily do so in the <a target="_blank" href="https://asp.keyoxide.org/">web client</a> and add your claims directly within the <a target="_blank" href="https://asp.keyoxide.org/">client</a>. Our app is now fully compatible with <a target="_blank" href="https://blog.keyoxide.org/ariadne-signature-profiles/">ASP profiles</a>, offering features like deep linking and QR code support. We're also working on bringing profile creation functionality to the app, so stay tuned for updates!</p>
<p><strong>Design Overhaul:</strong> <a target="_blank" href="https://keyoxide.org/aspe:keyoxide.org:TOICV3SYXNJP7E4P5AOK5DHW44">Yarmo</a> has given our design a significant facelift, resulting in a sleeker and simpler appearance. This fresh look is particularly beneficial for users with numerous claims. We've also added neat little service provider icons for the claims, enhancing your overall experience. We've strived to incorporate this new design sensibility into the app, and we're confident you'll appreciate it. Take a sneak peek:</p>
<p><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c869664-5f49-4850-be91-9033df28e0e1_1080x2280.png" alt /></p>
<p><strong>Loading Overlay with Claim Count:</strong> We now show a loading circle with the claim count, improving user experience. We've implemented a two-step process, making an initial API call to retrieve the claim count and displaying it to the user before proceeding with verification. This change provides a much smoother and more informative experience, in our humble opinion.</p>
<p><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c21e1e7-6de5-4785-8867-2fcce2ec9cf8_426x276.png" alt class="image--center mx-auto" /></p>
<p><strong>Package and Flutter Version Updates:</strong> We've also updated all packages and the Flutter version, incorporating numerous upstream bug fixes and performance enhancements. While I won't dive into the specifics, rest assured that this update brings better overall stability and performance.</p>
<p>To sum it up, this update will soon be available in app stores. However, if you can't wait, you have the option to download the Android APK directly from Codeberg releases. You can find the app links on the dedicated <a target="_blank" href="https://mobile.keyoxide.org/">mobile page</a> or the <a target="_blank" href="https://keyoxide.org/apps">new apps page</a>. If you'd like to contribute to translations, please visit the <a target="_blank" href="https://translate.codeberg.org/projects/keyoxide/keyoxide-mobile/">translations page</a>. Your assistance is greatly appreciated!</p>
<p>Thank you for your continued support, and we hope you enjoy this exciting update.</p>
]]></content:encoded></item><item><title><![CDATA[Strengthening Security and Enhancing Accessibility: Keyoxide Mobile's Latest Updates]]></title><description><![CDATA[Hi everyone, I have been hard at work implementing the NLnet milestones alongside improving and fixing the bugs. Keyoxide Mobile recently underwent a comprehensive security audit by Radically Open Security (ROS).

Photo by Franck on Unsplash

“The Ke...]]></description><link>https://berkersen.dev/strengthening-security-and-enhancing-accessibility-keyoxide-mobiles-latest-updates</link><guid isPermaLink="true">https://berkersen.dev/strengthening-security-and-enhancing-accessibility-keyoxide-mobiles-latest-updates</guid><category><![CDATA[Flutter]]></category><category><![CDATA[Security]]></category><category><![CDATA[Keyoxide]]></category><category><![CDATA[Accessibility]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Fri, 30 Jun 2023 10:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/oY5mX1aW72A/upload/57b8400ab546e88533850020d57863ff.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, I have been hard at work implementing the NLnet milestones alongside improving and fixing the bugs. Keyoxide Mobile recently underwent a comprehensive security audit by Radically Open Security (ROS).</p>
<p><img src="https://images.unsplash.com/photo-1603899122634-f086ca5f5ddd?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxzZWN1cml0eXxlbnwwfHx8fDE2ODgxMTM2Nzh8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080" alt="black iphone 5 on yellow textile" /></p>
<p>Photo by <a target="_blank" href="https://unsplash.com/es/@franckinjapan">Franck</a> on <a target="_blank" href="https://unsplash.com">Unsplash</a></p>
<blockquote>
<p>“The Keyoxide mobile application presented overall a high level of security, even if some medium to low issues were found.”</p>
<p>ROS</p>
</blockquote>
<p>The audit revealed several areas that required attention, including incomplete cleanup of shared preferences, improper TLS certificate validation, improper input validation, and improper input validation of server response.</p>
<p>Enhancing Security:</p>
<p>The security audit conducted on Keyoxide Mobile uncovered several vulnerabilities that needed immediate attention. I took swift action to rectify these issues, ensuring that users' data and privacy remain safeguarded. Here are the key security improvements implemented after the audit findings:</p>
<p>1. Complete Cleanup of Shared Preferences:</p>
<p>Shared preferences might contain sensitive data from users profile (It normally shouldn’t but who knows). Failing to clear these preferences thoroughly could leave traces of sensitive information. App now ensures complete cleanup of shared preferences.</p>
<p>2. Proper TLS Certificate Validation:</p>
<p>Validating the Transport Layer Security (TLS) certificates used in secure connections is crucial to prevent man-in-the-middle attacks and protect the integrity of data transmission. By addressing the improper TLS certificate validation, app now enforces robust security measures, guaranteeing secure and encrypted communication between the app and its servers. ( I had to revert this fix because of frequent certificate renewals but once I implement the local profile verification, we won’t need this server request at all.)</p>
<p>3. Improved Input Validation:</p>
<p>Input validation is a critical defense against common security vulnerabilities such as injection attacks and cross-site scripting. I bolstered the input validation mechanism by using the DIO package parameters instead of string concatenation when constructing the URLs, which ensures that user-supplied data is thoroughly checked and sanitized to prevent malicious code execution or unintended data manipulation.</p>
<p>4. Strengthened Validation of Server Response:</p>
<p>Just added a simple check to make sure the data returned from the server is in JSON format.</p>
<p>Accessibility:</p>
<p><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc496e153-294d-4d87-914f-52293d881ade_389x238.png" alt /></p>
<p>Apart from addressing security concerns, I have been working on enhancing accessibility. Here's an overview of the accessibility improvements:</p>
<p>1. Semantics:</p>
<p>I incorporated semantic elements into the user interface, enabling assistive technologies to better understand and navigate the app's content. By leveraging semantic tags &amp; widgets and proper structuring, Keyoxide Mobile now offers improved accessibility for users relying on screen readers or other assistive technologies.</p>
<p>2. Dyslexic Font:</p>
<p>Understanding the challenges faced by individuals with dyslexia, Keyoxide Mobile now includes a dyslexic font option. This feature enhances readability and comprehension, making the app more accessible for users with dyslexia or reading difficulties.</p>
<p>3. Seed color</p>
<p>We now have a new section in the theming which lets you chose a seed color, the app then create a color palette from the chosen color and applies it across the app. It’s suppose to have the right contrast for accessibility and looks really neat if you ask me.</p>
<p>We also updated the design from material 2 to material 3. You will notice the new material 3 widgets like bottom navigation, theme mode buttons etc.</p>
<p>Unit and Bloc Tests for Reliability:</p>
<p>Ensuring the reliability of an application is crucial for maintaining user trust and satisfaction. I integrated unit and bloc tests into the development process. These tests validate the individual units of code and cubits of application states, respectively, ensuring that the app functions as intended and minimizing the risk of regression issues. The unit tests are integrated to the CI/CD process, if the tests doesn’t pass, build process stops and sends me an email with the report so I can fix the issue.</p>
<p>This is it for now. You can find all the changes and fixes in the new version 1.5.0. If you wanna get these seldom updates to your inbox, subscribe below. Through semantic labels I had to add a lot of new text to the weblate waiting to be translated.</p>
]]></content:encoded></item><item><title><![CDATA[Localized and deep linked Keyoxide Mobile]]></title><description><![CDATA[If you haven’t seen the Keyoxide Mobile’s NLnet funding milestones yet, one of them is localization. When I heard the Codeberg is launching a translation service, I thought it would be the perfect candidate for Keyoxide Mobile since we host all our s...]]></description><link>https://berkersen.dev/localized-and-deep-linked-keyoxide-mobile</link><guid isPermaLink="true">https://berkersen.dev/localized-and-deep-linked-keyoxide-mobile</guid><category><![CDATA[Keyoxide]]></category><category><![CDATA[localization]]></category><category><![CDATA[Cryptography]]></category><category><![CDATA[OnlineIdentity]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Thu, 20 Apr 2023 10:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/JZ8AHFr2aEg/upload/d1b92deb61c711e7951e519b464e888d.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you haven’t seen the Keyoxide Mobile’s <a target="_blank" href="https://codeberg.org/Berker/keyoxide-flutter/milestone/3578">NLnet funding milestones</a> yet, one of them is localization. When I heard the <a target="_blank" href="https://blog.codeberg.org/letter-from-codeberg-hackathon-translation-service-more.html">Codeberg is launching a translation service</a>, I thought it would be the perfect candidate for <a target="_blank" href="https://mobile.keyoxide.org/">Keyoxide Mobile</a> since we host all our source code in <a target="_blank" href="https://codeberg.org/">codeberg</a> and I wasn’t wrong. After adding Keyoxide Mobile to <a target="_blank" href="https://translate.codeberg.org/">codeberg translations</a>, we had eight Languages translated at 100% in just two weeks with the help of the awesome community behind <a target="_blank" href="https://translate.codeberg.org/">codeberg translations</a> and <a target="_blank" href="https://keyoxide.org/">Keyoxide</a>. Currently available languages are English, Dutch, French, Galician, German, Polish, Spanish and Turkish.</p>
<p><a target="_blank" href="https://translate.codeberg.org/">Codeberg translations</a> is a Weblate instance, for those who never heard of <a target="_blank" href="https://weblate.org">Weblate</a>, Weblate is a free, open-source web-based translation management system that enables collaborative translation of software, documentation, and other types of content. Keyoxide joins a growing number of projects on Weblate, including popular open-source projects like VLC media player, Nextcloud, and Django, <a target="_blank" href="https://translate.codeberg.org/projects/">here is the complete list</a>.</p>
<p><img src="https://images.unsplash.com/photo-1571498664957-fde285d79857?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwyfHxsYW5ndWFnZXN8ZW58MHx8fHwxNjc5MzkwMjUx&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080" alt="brown wooden surface" class="image--center mx-auto" /></p>
<p>Photo by <a target="_blank" href="https://unsplash.com/@hannahwrightdesigner">Hannah Wright</a> on <a target="_blank" href="https://unsplash.com">Unsplash</a></p>
<p>With the addition of localization support on codeberg translations, we hope to increase the accessibility of the mobile app to a wider audience. Non-English speaking users can now contribute translations to the app, making it easier to use and more intuitive.</p>
<p>To contribute translations, users can simply create an account on Codeberg or login with their existing account and navigate to the Keyoxide project. From there, they can choose their preferred language and begin translating the app's interface, even add a new language if it’s not there.</p>
<p>Localization on codeberg translations and Weblate is just one of the many steps Keyoxide is taking to make the platform more accessible to users around the world.</p>
<p>Another feature we have implemented is deep linking. When a user clicks on a deep link, their device will recognize the URL scheme (OPENPGP4FPR) and launch the Keyoxide app and view the profile directly. For example, go to the demo profile here: <a target="_blank" href="https://codeberg.org/Berker/keyoxide-flutter/milestone/3578">https://keyoxide.org/project@keyoxide.org</a> and then click the fingerprint key and then hit ‘SHOW OPENPGP FINGERPRINT QR’ button and click the OPENPGP4FPR link which should launch the app and view the profile.</p>
<p><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54c2a6e3-d0c3-43f1-91f9-e0224cc1f7c3_404x690.gif" alt /></p>
<p>Updates will be available shortly on the store of your choice and download links can be found on <a target="_blank" href="https://mobile.keyoxide.org/">Keyoxide Mobile website</a>.</p>
<p>This is it for now. If you're interested in contributing to the localization effort for the Keyoxide, head over to <a target="_blank" href="https://translate.codeberg.org/projects/keyoxide/">codeberg translations</a> and start translating today!</p>
]]></content:encoded></item><item><title><![CDATA[Localize your flutter app with Weblate]]></title><description><![CDATA[When I set out to find an open source localization service for Keyoxide Mobile, I couldn’t find many open source services with easy implementation and than I remembered codeberg announcing a translation service, a weblate instance. Since we host all ...]]></description><link>https://berkersen.dev/localize-your-flutter-app-with-weblate</link><guid isPermaLink="true">https://berkersen.dev/localize-your-flutter-app-with-weblate</guid><category><![CDATA[weblate]]></category><category><![CDATA[Flutter]]></category><category><![CDATA[localization]]></category><category><![CDATA[internalization]]></category><category><![CDATA[Open Source]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Sat, 15 Apr 2023 10:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1705432857086/4467700d-b0a3-430e-877e-942ca0cd15f9.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When I set out to find an open source localization service for <a target="_blank" href="https://mobile.keyoxide.org/">Keyoxide Mobile</a>, I couldn’t find many open source services with easy implementation and than I remembered <a target="_blank" href="https://blog.codeberg.org/letter-from-codeberg-hackathon-translation-service-more.html">codeberg announcing a translation service</a>, a <a target="_blank" href="https://translate.codeberg.org/">weblate instance</a>. Since we host all our code on <a target="_blank" href="https://codeberg.org/">codeberg</a>, I decided to check it out and I’m glad I did.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705427040169/be24bd72-8141-421d-8ea4-eea6878712af.png" alt class="image--center mx-auto" /></p>
<p><a target="_blank" href="https://weblate.org">Weblate</a> is a free, open-source web-based translation management system that enables collaborative translation of software, documentation, and other types of content. Keyoxide joins a growing number of projects on Weblate, including popular open-source projects like VLC media player, Nextcloud, and Django. It supports translation service suggestions such as <a target="_blank" href="https://www.deepl.com">DeepL</a> to make translating a breeze.</p>
<p>When it comes to open source projects, Weblate is the go-to localization service. What makes it especially attractive for flutter developers is, there is an unofficial <a target="_blank" href="https://pub.dev/packages/weblate_sdk">weblate sdk package</a> in <a target="_blank" href="https://mobile.keyoxide.org/">pub.dev</a> which makes the integration very easy. The developer of the package <a target="_blank" href="https://github.com/cozvtieg9">@cozvtieg9</a> is incredibly responsive, he was able to fix a bug I encountered less then a few hours and helped me with the integration as well. He even implemented a feature request I made in less then 24 hours.</p>
<p>Enough talk, lets get to the code. First you need to have a weblate instance, if you don’t want to host a weblate instance yourself, I would recommend the <a target="_blank" href="https://translate.codeberg.org/">codeberg instance</a>. You can check the <a target="_blank" href="https://docs.weblate.org/en/latest/">weblate docs</a> for further info. Once you created your project and added your app as a component:</p>
<ol>
<li><p>go to project &gt; Manage &gt; API access, from there hit the Teams tab on top. Create a new team and name it ‘Languages’ or whatever you want, don’t change anything else and hit Add button at the bottom.</p>
<p> <img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F837436ea-5a5f-43b6-870f-3c1f46cb8e95_2966x808.png" alt /></p>
</li>
</ol>
<p>Once you have your ‘Languages’ team, go to API access and create a project token, name it whatever you want, choose an expiry date. When you hit create, you will get to chose Teams, here we will un-select the Administration team and select the team we created before, in my case ‘Languages’. We don’t want our token to have admin privileges. Afterwards you copy the token somewhere safe, we will need it later.</p>
<p><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fa00c6a-4780-46ad-bc81-41e4bd44c795_1458x648.png" alt /></p>
<ol>
<li><p>Now go to profile &gt; settings &gt; API access tab and copy the API root URL we will need later on.</p>
</li>
<li><p>In the app first we will need to add localization support and the <a target="_blank" href="https://pub.dev/packages/weblate_sdk">weblate_sdk package</a> to our pubspec.yml file</p>
<pre><code class="lang-yaml"> <span class="hljs-attr">weblate_sdk:</span> <span class="hljs-string">latest</span>
 <span class="hljs-attr">flutter_localizations:</span>
     <span class="hljs-attr">sdk:</span> <span class="hljs-string">flutter</span>
</code></pre>
</li>
<li><p>In our <strong>main</strong> function, we initialize the weblate_sdk. In my case the API root URL was <a target="_blank" href="https://mobile.keyoxide.org/">https://translate.codeberg.org/api/</a> but <a target="_blank" href="https://mobile.keyoxide.org/">https://translate.codeberg.org</a> worked as well so if the root URL from weblate doesn’t work for you, remove the /api/ at the end and try again. If you need more info about the parameters, you can find it in the <a target="_blank" href="https://pub.dev/documentation/weblate_sdk/latest/">documentation</a>.</p>
<pre><code class="lang-dart">  <span class="hljs-keyword">await</span> WebLateSdk.initialize(
     token: <span class="hljs-string">'the project token we created in step 2'</span>,
     host: <span class="hljs-string">'API root URL from step 3'</span>,
     projectName: <span class="hljs-string">'name of project'</span>,
     componentName: <span class="hljs-string">'name of component'</span>,
     defaultLanguage: <span class="hljs-string">'en'</span>,
     disableCache: <span class="hljs-keyword">false</span>, <span class="hljs-comment">//optional</span>
     cacheLive: <span class="hljs-keyword">const</span> <span class="hljs-built_in">Duration</span>(days: <span class="hljs-number">1</span>), <span class="hljs-comment">//optional</span>
     fallbackJson: <span class="hljs-string">'assets/default.json'</span>, <span class="hljs-comment">//optional</span>
   );
</code></pre>
</li>
<li><p>Next you just need to create a few strings in your component and use your localized strings in your code.</p>
<pre><code class="lang-dart"> context.localizedValueOf(<span class="hljs-string">'key'</span>)
</code></pre>
</li>
<li><p>You can also use formatted strings</p>
<pre><code class="lang-dart"> context.localizedValueOf(<span class="hljs-string">'key'</span>, format: [<span class="hljs-string">'John'</span>])

 Note: To use formatted strings you should highlight the interpolated string <span class="hljs-keyword">with</span> { }. For example: <span class="hljs-string">'Welcome {username}!'</span>
 Output: Welcome John!
</code></pre>
</li>
</ol>
<p>That’s it really! Now you need to take your time and localize all the text in your app. <a target="_blank" href="https://translate.codeberg.org/">Codeberg weblate instance</a> has such a strong community that after adding my app, I got 8 languages translated at 100% in a week or so.</p>
<p>If you liked this article and want to know more about open source content for flutter, follow on <a target="_blank" href="https://fosstodon.org/@berker">Mastodon</a> and <a target="_blank" href="https://twitter.com/Berker">Twitter</a>.</p>
]]></content:encoded></item><item><title><![CDATA[Keyoxide Mobile gets new funding!]]></title><description><![CDATA[I’m pleased to announce that recently, NLnet approved a new funding to support the growth of the platform. This funding will help Keyoxide Mobile to continue to develop new features and to expand its user base.
NLnet is a Dutch foundation that suppor...]]></description><link>https://berkersen.dev/keyoxide-mobile-gets-new-funding</link><guid isPermaLink="true">https://berkersen.dev/keyoxide-mobile-gets-new-funding</guid><category><![CDATA[nlnet]]></category><category><![CDATA[keyoxide mobile]]></category><category><![CDATA[Keyoxide]]></category><category><![CDATA[Cryptography]]></category><category><![CDATA[Flutter]]></category><category><![CDATA[OnlineIdentity]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Wed, 08 Mar 2023 11:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/-rF4kuvgHhU/upload/7d66db85e4eedef41dd892509e2b212f.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I’m pleased to announce that recently, <a target="_blank" href="https://nlnet.nl/project/Keyoxide-Mobile/">NLnet approved a new funding</a> to support the growth of the platform. This funding will help <a target="_blank" href="https://mobile.keyoxide.org/">Keyoxide Mobile</a> to continue to develop new features and to expand its user base.</p>
<p><a target="_blank" href="https://nlnet.nl/foundation/">NLnet</a> is a Dutch foundation that supports projects related to open standards and digital rights. We're grateful for their support, which has helped us bring the benefits of secure encryption and digital identity management to even more people.</p>
<p>Some of the milestones in the scope of the funding are:</p>
<ul>
<li><p>Onboarding: First launch of the app will show an onboarding screen showing short info about <a target="_blank" href="https://keyoxide.org/">Keyoxide</a> with links and docs.</p>
</li>
<li><p>Localization: A i18n service will be setup for the app for several languages, community will be able to translate the strings. App will get the translations from the service will be showing the selected language.</p>
</li>
<li><p>Contacts: The user will be able to save his/her friends profiles just like in a contacts app. A new section in the bottom navigation bar will be designed, when clicked it will show a list of saved profiles like a contacts app, shown profile tiles will be clickable which will generate the profile for quick access.</p>
</li>
<li><p>Profile creation: User will be able to create and store his/her key on the device and add the available claims from within the device (For signature profiles only), for unavailable claims, he/she will get directions for how to add those claims manually.</p>
</li>
<li><p>CI/CD setup, development and production build flavors: The app will have development and production build flavors which will make the development process safer and less error prone. A build server will be setup which will be connected to the git repository and build development and production versions from the source, upload the builds automatically to F-Droid, App store and Google Play when a release is tagged.</p>
</li>
<li><p>Google Play and App Store releases: At the moment the app is available in F-Droid only and it will be released to Google Play for Android and App Store for iOS.</p>
</li>
</ul>
<p>If you are interested, you can find the complete list of the goals as a milestone on <a target="_blank" href="https://codeberg.org/Berker/keyoxide-flutter/milestone/3578">codeberg</a> and follow their progress.</p>
<p><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2aea6cfa-8a68-4ed7-bf25-aec4a58300b2_512x512.png" alt class="image--center mx-auto" /></p>
<p>The <a target="_blank" href="https://mobile.keyoxide.org/">Keyoxide Mobile</a> App is an easy-to-use tool that helps users manage their digital identities and secure their communications on the go. The new funding will help <a target="_blank" href="https://mobile.keyoxide.org/">Keyoxide Mobile</a> to continue to develop new features and to reach a wider audience with App Store and Google Play releases, making it an even more valuable tool for those looking to establish their online identity. When the milestones are complete, you will be able to create a public key, add your claims, save and share profiles, verify your online accounts and identities without a need of a server and even encrypt your messages within the app. With this, I’d like to announce the new home for Keyoxide Mobile <a target="_blank" href="https://nlnet.nl/project/Keyoxide-Mobile/">https://mobile.keyoxide.org/</a> and the completion of the first milestone, <a target="_blank" href="https://mobile.keyoxide.org/">Keyoxide Mobile</a> is now available for free to download on <a target="_blank" href="https://play.google.com/store/apps/details?id=org.keyoxide.keyoxide">Google Play</a>, <a target="_blank" href="https://apps.apple.com/us/app/keyoxide/id1670664318">App Store</a> and <a target="_blank" href="https://f-droid.org/en/packages/org.keyoxide.keyoxide/">F-Droid</a>.</p>
<p>In a world where the internet plays an increasingly central role in our daily lives, the need for a secure and reliable way to establish our online identities has become more important than ever. <a target="_blank" href="https://keyoxide.org/">Keyoxide</a> aims to do just that. If you wanna chip in the effort, hit the <a target="_blank" href="https://codeberg.org/Berker/keyoxide-flutter">source code</a>, join the <a target="_blank" href="https://matrix.to/#/#keyoxide-space:matrix.org">matrix space</a> &amp; <a target="_blank" href="https://community.keyoxide.org/">community forum</a> and <a target="_blank" href="https://liberapay.com/Keyoxide">donate</a> to the project.</p>
<p>To follow the progress of the app, subscribe to the blog or follow me on <a target="_blank" href="https://fosstodon.org/@Berker">Mastodon</a> and <a target="_blank" href="https://twitter.com/berker">Twitter</a>!</p>
]]></content:encoded></item><item><title><![CDATA[Introducing the Practice Suite!]]></title><description><![CDATA[Hi everyone! I have been working on an app and in this blog post, I would like to introduce you to it, an open source app that combines several music practice tools in one: a metronome, tuner, recorder, and practice log. It is called "Practice Suite"...]]></description><link>https://berkersen.dev/introducing-the-practice-suite</link><guid isPermaLink="true">https://berkersen.dev/introducing-the-practice-suite</guid><category><![CDATA[tuner]]></category><category><![CDATA[music]]></category><category><![CDATA[app development]]></category><category><![CDATA[Metronome]]></category><category><![CDATA[Flutter]]></category><category><![CDATA[practice]]></category><category><![CDATA[recording app]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Thu, 23 Feb 2023 11:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/XAX8vCM5G6o/upload/185b3f2e381c22a69d2dd9959fb4078e.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone! I have been working on an app and in this blog post, I would like to introduce you to it, an open source app that combines several music practice tools in one: a metronome, tuner, recorder, and practice log. It is called "Practice Suite" and is available for free on <a target="_blank" href="https://f-droid.org/en/packages/com.berkersen.practicesuite/">F-Droid</a>, <a target="_blank" href="https://play.google.com/store/apps/details?id=com.berkersen.practicesuite">Google Play</a> and <a target="_blank" href="https://apps.apple.com/us/app/practice-suite/id1668677376?itsct=apps_box_link&amp;itscg=30200">App Store</a>.</p>
<p><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f50f9d-8310-47de-bacc-2f98c8002b99_1024x1024.png" alt /></p>
<p>Practice Suite</p>
<p>Practice Suite is an open source app developed by me, a professional musician who was frustrated with the lack of music practice tools that could integrate all of my needs. So, I decided to create my own tool that would make it easy for musicians to practice effectively and track their progress.</p>
<p>The app has four main functions: metronome, tuner, recorder, and practice log.The practice log function allows musicians to keep track of their practice sessions, including the date, duration, speed, and notes about what they worked on. The metronome function is a basic metronome with adjustable tempo, time signature, and accent pattern, it has the basic tempo markings built-in so you could just tap the speed next to the marking to adjust your speed as well as the tapping or holding down the speed buttons. The tuner function can help musicians tune their instrument with visual cues. The recorder function can record audio from the device's microphone in a lossless high quality wave format, and save it to the device for later playback or upload.</p>
<p><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e90946a-3aac-4a8f-869e-6951710593f6_1000x400.png" alt /></p>
<p>One of the unique features of Practice Suite is its practice log function. This function allows users to create log entries for each practice session, including details such as the date, speed, duration, and notes about what they worked on. You can also tag the log entries for quick access later on. The app can generate statistics based on the log entries, showing users how much time they have spent practicing, how frequently they practice, and how much they have improved over time. These statistics can be a valuable tool for musicians who want to track their progress and identify areas where they need to focus their practice.</p>
<p>Practice Suite is open source, meaning it is free to download &amp; use and the source code is available on <a target="_blank" href="https://codeberg.org/Berker/practice_suite">Codeberg</a>, which allows other developers to contribute to the app's development and suggest new features. The app is compatible with both iOS and Android devices, and can be downloaded from <a target="_blank" href="https://f-droid.org/en/packages/com.berkersen.practicesuite/">F-Droid</a>, <a target="_blank" href="https://play.google.com/store/apps/details?id=com.berkersen.practicesuite">Google Play</a> and <a target="_blank" href="https://apps.apple.com/us/app/practice-suite/id1668677376?itsct=apps_box_link&amp;itscg=30200">App Store</a>.</p>
<p>Try it out, hit <a target="_blank" href="https://matrix.to/#/#practice_suite:matrix.org">the matrix chat-room</a>, <a target="_blank" href="https://twitter.com/berker">Twitter</a> or <a target="_blank" href="https://fosstodon.org/@Berker">Mastodon</a> to let me know what you think! If you have suggestions, feature requests or issues, <a target="_blank" href="https://codeberg.org/Berker/practice_suite/issues">codeberg issues</a> is the right place.</p>
]]></content:encoded></item><item><title><![CDATA[Much more than a bluetick]]></title><description><![CDATA[Lots of people have been migrating to mastodon since the changes over at twitter and there has been a lot of debate about bluetick in twitter.
People who migrated to mastodon might be asking themselves, is there a bluetick equivalent in mastodon or t...]]></description><link>https://berkersen.dev/much-more-than-a-bluetick</link><guid isPermaLink="true">https://berkersen.dev/much-more-than-a-bluetick</guid><category><![CDATA[Keyoxide]]></category><category><![CDATA[OnlineIdentity]]></category><category><![CDATA[Security]]></category><category><![CDATA[privacy]]></category><category><![CDATA[Cryptography]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Thu, 15 Dec 2022 11:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/88XcHKPLe3E/upload/fcab192fea7f1cb97eabb3107c2a638d.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Lots of people have been migrating to mastodon since the changes over at twitter and there has been a lot of debate about bluetick in twitter.</p>
<p>People who migrated to mastodon might be asking themselves, is there a bluetick equivalent in mastodon or twitter users who doesn't wanna pay a fortune for a simple verification. Well there is an open source alternative, much more then a bluetick, it’s not just for mastodon or twitter but for many other platforms, it's called <a target="_blank" href="https://keyoxide.org">Keyoxide</a>.</p>
<p>What is Keyoxide ? I'm gonna quote the Keyoxide here:</p>
<blockquote>
<p>A modern, secure and privacy-friendly platform to establish your decentralized online identity</p>
<p>Keyoxide allows you to prove “ownership” of accounts on websites, domain names, IM, etc., regardless of your username.</p>
<p>That last part is important: you could, for example, be ‘alice’ on <a target="_blank" href="https://images.unsplash.com/photo-1603899122361-e99b4f6fecf5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aWNrfGVufDB8fHx8MTY3MzExNzE0MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080">Lobste.rs</a>, but ‘@alice24’ on Twitter. And if your website is ‘thatcoder.tld’, how are people supposed to know that all that online property is yours?</p>
<p>Of course, one could opt for full anonymity! In which case, keep these properties as separated as possible. But if you’d like these properties to be linked and, by doing so, establish an online identity, you’ll need a clever solution.</p>
<p>Enter Keyoxide.</p>
<p>When you visit someone’s Keyoxide profile and see a green tick next to an account on some website, it was proven beyond doubt that the same person who set up this profile also holds that account.</p>
</blockquote>
<p><img src="https://images.unsplash.com/photo-1603899122361-e99b4f6fecf5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aWNrfGVufDB8fHx8MTY3MzExNzE0MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080" alt /></p>
<p>Photo by <a target="_blank" href="https://unsplash.com/es/@franckinjapan">Franck</a> on <a target="_blank" href="https://unsplash.com">Unsplash</a></p>
<p>Keyoxide is in active development and currently on it’s <a target="_blank" href="https://nlnet.nl/project/Keyoxide-signatures/">second round funding</a> by NLnet for Keyoxide v2. Awesome dev behind all this is <a target="_blank" href="https://yarmo.eu/">Yarmo Mackenbach</a> who is a FOSS dev.</p>
<p>The identity theft is becoming more of a problem everyday and Keyoxide is a great way to verify accounts and prove they belong to the same person. Let’s say you are in HR department of a company interviewing for a software engineering position and you require the git portfolios of the canditates you are interviewing to determine if the person has the needed tech stack and experience. How would you prove the git account you are given really belongs to the person who you are interviewing ?</p>
<p>Or let’s say a friend has a twitter account with the handle @JohnDoe and you want to know if the same handle on mastodon belongs to the same person so you can add him. It has many use cases, you can also just claim your accounts and use it as your personal business card or website. Here is <a target="_blank" href="https://keyoxide.org/9f0048ac0b23301e1f77e994909f6bd6f80f485d">Yarmo's Keyoxide profile</a> as an example for you to check out. Over a year ago <a target="_blank" href="https://berker.substack.com/about">I</a> started developing a mobile app for Keyoxide, where you can save your own profile for quick access, enter an identifier or scan a qr-code to see the verification result generated by the app. It currently is available on <a target="_blank" href="https://f-droid.org/en/packages/org.keyoxide.keyoxide/">F-Droid</a> and <a target="_blank" href="https://codeberg.org/keyoxide/keyoxide-flutter/releases">codeberg releases</a> for Android but a release on App Store for iOS and on Play Store for Android planned along with a bunch of other features.</p>
<p>For more information, check out the <a target="_blank" href="https://keyoxide.org/">Keyoxide website</a> and the <a target="_blank" href="https://docs.keyoxide.org/">Keyoxide docs</a>.</p>
]]></content:encoded></item><item><title><![CDATA[Go resources]]></title><description><![CDATA[Got any resources to add ? Please comment below or contact me..
Educational

Play Go | Best place to learn go, many languages available.

AlphaGo Teach | Let the AlphaGo Teaching Tool help you find new and creative ways of playing Go.

Benjamin's gui...]]></description><link>https://berkersen.dev/go-resources</link><guid isPermaLink="true">https://berkersen.dev/go-resources</guid><category><![CDATA[go]]></category><category><![CDATA[Baduk]]></category><category><![CDATA[Game of go, ]]></category><category><![CDATA[Weiqi]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Wed, 26 Oct 2022 10:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/NIJuEQw0RKg/upload/1d61fa92ef1b1c1d4ce210e08af23ab8.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Got any resources to add ? Please comment below or <a target="_blank" href="https://berkersen.dev/about">contact</a> me..</p>
<p><strong>Educational</strong></p>
<ul>
<li><p><a target="_blank" href="http://playgo.to/iwtg/en/">Play Go</a> | Best place to learn go, many languages available.</p>
</li>
<li><p><a target="_blank" href="https://alphagoteach.deepmind.com/">AlphaGo Teach</a> | Let the AlphaGo Teaching Tool help you find new and creative ways of playing Go.</p>
</li>
<li><p><a target="_blank" href="https://senseis.xmp.net/?BenjaminTeuber/GuideToBecomeStrong">Benjamin's guide</a> | to become strong.</p>
</li>
<li><p><a target="_blank" href="http://ps.waltheri.net/">Waltheri's web app</a> | Waltheri's go pattern search is a web application for searching go positions such as joseki and fuseki in professional go games. It is very useful for studying. Waltheri's go pattern search uses extensive database of professional game records. Actually it contains almost 70 000 kifu with latest games.</p>
</li>
<li><p><a target="_blank" href="http://www.wbaduk.com/">WBaduk</a> | Great lectures by professionals.</p>
</li>
<li><p><a target="_blank" href="https://www.playgroundequipment.com/a-kids-guide-to-playing-go/">PlaygroundEquipment</a> | A Kid's Guide to Playing Go (Thanks Elijah)</p>
</li>
</ul>
<p><strong>A.I.</strong></p>
<ul>
<li><p><a target="_blank" href="https://ai-sensei.com">AI Sensei</a> | AI Sensei is a tool that analyzes Go games for you. Once you upload an SGF file, it gets analyzed with Leela Zero in a powerful cloud. Then, use the intuitive web board to learn about mistakes and how the AI would have played instead. All reviews are permanently stored, so you can study them again and again, or share them with anybody.</p>
</li>
<li><p><a target="_blank" href="https://www.zbaduk.com">ZBaduk</a> | You can load your games and get an AI analysis or play against the AI. (Leela Zero).</p>
</li>
<li><p><a target="_blank" href="https://deepleela.com/">DeepLeela</a> | is an open-source go learning helper with leela. You can fight against Leela/LeelaZero, review your SGF, and get winrate information on your PC or mobile anywhere, anytime.</p>
</li>
<li><p><a target="_blank" href="https://leela-one-playout.herokuapp.com/">One playout leela</a> | A webapp where you can play against bots with different strengths.</p>
</li>
<li><p><a target="_blank" href="https://github.com/featurecat/lizzie">Lizzie</a> | Lizzie is a graphical interface allowing the user to analyze games in real time using Leela Zero.</p>
</li>
</ul>
<p><strong>SGF &amp; Kifu</strong></p>
<ul>
<li><p><a target="_blank" href="https://gokibitz.com/">GoKibitz</a> | GoKibitz lets people comment on individual moves so that it’s easy to have specific and detailed conversations about game records.</p>
</li>
<li><p><a target="_blank" href="http://gokifu.com/">Gokifu</a> | Gokifu is а rapidly growing resource of go records.</p>
</li>
<li><p><a target="_blank" href="http://www.alphago-games.com">Alphago's games</a> | Presented with preview tiles at move 50. Scroll through interesting positions, and find your favorite game in 1 click. Consider this website as fan-art, a tribute to the wonderful work of Deepmind, Enjoy!</p>
</li>
<li><p><a target="_blank" href="http://www.go4go.net/">Go4Go</a> | Go4Go hosts one of the most reliable and frequently updated Go game record database on the Internet, an open environment that encourages users to share their opinions in their forums.</p>
</li>
</ul>
<p><strong>Tsumego &amp; Joseki &amp; Go Problems</strong></p>
<ul>
<li><p><a target="_blank" href="http://goproblems.com/">Go Problems</a> | A comprehensive, fully-featured, and extendable go problem resource.</p>
</li>
<li><p><a target="_blank" href="https://tsumego.tasuki.org">Tsumego Tasuki</a> | A collection of tsumego problems which can be downloaded as PDF as well.</p>
</li>
<li><p><a target="_blank" href="https://tsumego-hero.com">Tsumego Hero</a> | Another tsumego site but this website is designed for a great user expierience by keeping track of your progress, providing rewards and making go problems fun.</p>
</li>
<li><p><a target="_blank" href="http://www.josekipedia.com/">Josekipedia</a> | Online joseki Library.</p>
</li>
<li><p><a target="_blank" href="http://www.josekifarm.com/">Joseki Farm</a> | A fun way to learn joseki. Place a stone on the corner and see if you know the continuation, get points and beat the highscore..</p>
</li>
<li><p><a target="_blank" href="http://eidogo.com">Eido Go</a> | An all in one Open Source site with many tools like go problems, game collections of go professionals, joseki library, pattern search and more..</p>
</li>
<li><p><a target="_blank" href="https://blacktoplay.com/">Black to</a> play | A beautiful site where you can solve hundreds of go problems and improve your skills</p>
</li>
</ul>
<p><strong>Reading</strong></p>
<ul>
<li><p><a target="_blank" href="http://www.lifein19x19.com">Life in 19x19</a> | One of the largest go forums..</p>
</li>
<li><p><a target="_blank" href="http://www.emptytriangle.com/">Empty Triangle</a> | Cartoon serie about go.</p>
</li>
<li><p><a target="_blank" href="https://explorebaduk.com">Explore Baduk</a> | is a huge source for go news, game reviews, weekly go problems, pro interviews and much more...</p>
</li>
<li><p><a target="_blank" href="https://cdn.online-go.com/shape_up.pdf">Shape Up!</a> | Great book about shapes by Charles Matthews &amp; Seong-June Kim and it's free.</p>
</li>
<li><p><a target="_blank" href="https://archive.org/details/gameofgonational00smitrich/page/26">The game of go</a> | A historical book written in 1908.</p>
</li>
<li><p><a target="_blank" href="http://tigersmouth.org/downloads/RiverMtnGo-30k-20k.pdf">River Mountain Go - 1</a> | for 30k - 20k by Oliver Richman.</p>
</li>
<li><p><a target="_blank" href="http://tigersmouth.org/downloads/RiverMtnGo-20k-8k.pdf">River Mountain Go - 2</a> | for 20k - 8k by Oliver Richman.</p>
</li>
<li><p><a target="_blank" href="https://m.fanfiction.net/s/2914615/1/The-Neverending-Road">Hikaru no go sequel</a> | This is a sequel to Hikaru No Go, written by a fan. There are 79 Chapters of it, I’d recommend after watching Hikaru No Go. It’s really good.</p>
</li>
</ul>
<p><strong>Video</strong></p>
<ul>
<li><a target="_blank" href="https://badukmovies.com/">Baduk movies</a> | A collection of videos made by go professionals.</li>
</ul>
<p><strong>Sites</strong></p>
<ul>
<li><p><a target="_blank" href="https://senseis.xmp.net/">Sensei's Library</a> | A go library where you can find anything on the subject.</p>
</li>
<li><p><a target="_blank" href="http://gobase.org/">Go base</a> | One of the oldest go sites with comprehensive information and news.</p>
</li>
</ul>
<p><strong>Go Servers</strong></p>
<ul>
<li><p><a target="_blank" href="http://www.gokgs.com/">KGS Go Server</a></p>
</li>
<li><p><a target="_blank" href="http://pandanet-igs.com/">IGS Internet Go Server</a></p>
</li>
<li><p><a target="_blank" href="https://www.online-go.com/">OGS Online Go Server</a></p>
</li>
<li><p><a target="_blank" href="http://www.dragongoserver.net/">DGS Dragon Go Server</a></p>
</li>
<li><p><a target="_blank" href="http://www.wbaduk.com/">WBaduk</a></p>
</li>
<li><p><a target="_blank" href="http://www.flyordie.com/go/">Fly or Die</a></p>
</li>
<li><p><a target="_blank" href="http://goshrine.com/">Go Shrine</a></p>
</li>
<li><p><a target="_blank" href="http://www.tygem.com/">Tygem</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Keyoxide mobile 1.2.0]]></title><description><![CDATA[Hi everyone! For those who just stumbled upon this post and asking themselves what keyokeyoxide mobilexide is, click here. We started keyoxide mobile as a demo which in time became much more then that. That's why I needed some time to re-write & re-s...]]></description><link>https://berkersen.dev/keyoxide-mobile-120</link><guid isPermaLink="true">https://berkersen.dev/keyoxide-mobile-120</guid><category><![CDATA[Keyoxide]]></category><category><![CDATA[OnlineIdentity]]></category><category><![CDATA[Security]]></category><category><![CDATA[privacy]]></category><category><![CDATA[Cryptography]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Fri, 14 Oct 2022 10:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/Uw_8vSroCSc/upload/87565ac845a44713cba6e6fc8d7744f8.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone! For those who just stumbled upon this post and asking themselves what <a target="_blank" href="https://keyoxide.org/">keyo</a><a target="_blank" href="https://keyoxide.org">keyoxide mobile</a><a target="_blank" href="https://keyoxide.org/">xide</a> is, click <a target="_blank" href="https://keyoxide.org/"><strong>here</strong></a>. We started <a target="_blank" href="https://f-droid.org/en/packages/org.keyoxide.keyoxide/">keyoxide mobile</a> as a demo which in time became much more then that. That's why I needed some time to re-write &amp; re-structure the code completely to prevent having problems at a later stage when we want to add certain features, thus the extended time for an update... On this post, I just want to give you some info about what we fixed, added, removed etc...</p>
<hr />
<ul>
<li><p>When you launch the app, first thing you might notice is the new icons on the launcher or the recent apps view, they are adaptive and resize according to the device resolution.</p>
</li>
<li><p>You will also notice that I removed the floating action button in favor of the scanner button on the app bar as requested by <a target="_blank" href="https://keyoxide.org/9f0048ac0b23301e1f77e994909f6bd6f80f485d">Yarmo</a>, that way it is accessible across all screens. And the theme switch button is moved to the settings screen.</p>
<p>  <img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9be45f49-e6d9-448f-85ee-5474644d47c6_794x324.png" alt /></p>
</li>
<li><p>In the shiny new settings screen, we have the theming settings first which is set to system theme by default. And then the support section with the official <a target="_blank" href="https://docs.keyoxide.org/getting-started/community/">keyoxide</a> links where you can seek help or ask your questions if you have any.</p>
<p>  Donation section is also self explanatory.. And an about section with some info about the app itself.</p>
<p>  <img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc87ccbf0-4bec-4a83-8803-75bdbb865b8a_1080x2280.png" alt /></p>
</li>
<li><p>For easy navigation between the screens, I added a navigation bar which also holds our brand new user profile feature and other features to come which I won’t reveal just yet..</p>
<p>  <img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F03743521-de48-4ab9-a419-827518d3bef9_808x162.png" alt /></p>
</li>
<li><p>Probably the most important change and addition in the app is the user view feature. You can now save your own profile for quick access from the user tab in navigation bar. And from there, you can share or view your own profile quickly.</p>
<hr />
</li>
</ul>
<p>Lots of other small changes have been made such as, some neat animations to the profile screens, swipe left from the settings screen to quickly go back, speed dial button on profile, to be able to share fingerprint and profile link from there etc.. I won’t go into detail for the small changes and the bug fixes. But all in all, it’s a step forward in the right direction I think… None of this would be possible without the help of <a target="_blank" href="https://keyoxide.org/9f0048ac0b23301e1f77e994909f6bd6f80f485d">Yarmo</a>, so many thanks and kudos goes to <a target="_blank" href="https://keyoxide.org/9f0048ac0b23301e1f77e994909f6bd6f80f485d">Yarmo</a>! Please let us know what you think, there is a new <a target="_blank" href="https://community.keyoxide.org/t/keyoxide-mobile">keyoxide mobile</a> section in the community forum and you can always report your bugs and feature requests through <a target="_blank" href="https://codeberg.org/keyoxide/keyoxide-flutter/issues">codeberg issues</a> page. If you wanna follow me, here is my <a target="_blank" href="https://twitter.com/Berker">twitter</a> and <a target="_blank" href="https://fosstodon.org/@Berker">mastodon</a> accounts. Looking forward to hear from you!</p>
<p>If you can’t wait for the F-Droid update, you can download it directly from the <a target="_blank" href="https://codeberg.org/berker/keyoxide-flutter/releases">codeberg release</a>. Enjoy it and share the love..</p>
]]></content:encoded></item><item><title><![CDATA[Correspondence games]]></title><description><![CDATA[For years, I played for a few months intensively and then lost interest.. This happened again and again over the years. I did almost everything to keep myself motivated and keep playing without any success. I got books and tried to read them, got a n...]]></description><link>https://berkersen.dev/correspondence-games</link><guid isPermaLink="true">https://berkersen.dev/correspondence-games</guid><category><![CDATA[Game of go, ]]></category><category><![CDATA[Baduk]]></category><category><![CDATA[Weiqi]]></category><category><![CDATA[Go]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Thu, 13 Oct 2022 10:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/LPRrEJU2GbQ/upload/6da12cc3ed6a4463df710ee26144ac72.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For years, I played for a few months intensively and then lost interest.. This happened again and again over the years. I did almost everything to keep myself motivated and keep playing without any success. I got books and tried to read them, got a nice board to motivate myself. Downloaded pro games and replayed a few. Joined the go local club and tried to attend go evenings as much as I can to no avail.. Don't get me wrong, I'm not aiming to become a pro or have any ambitions becoming better etc.. I love the game, just the game, in a degree that I didn't completely stop playing over the years nor I was able to keep myself motivated to play regularly..</p>
<p>Discovering <a target="_blank" href="https://www.online-go.com">OGS</a> was the first step to true motivation for me honestly. OGS has a lot of different aspects which might keep you motivated. Problems, professional games, groups, ladders, tournaments, joseki library. A huge resource.. For me it was the correspondence games.. As the life gets quicker and the free time scarce, correspondence games fits perfect to the scenario and fills the void for people like me. I can play my games without the pressure of time, one move at a time.. You gotta be careful tho, it is very different then playing a normal game and if you play only correspondence games, your ranking will not reflect your true ability. After playing only correspondence games for a long time, I attended a go tournament and was unable to win against those lower ranked then me..</p>
<p>I guess balance is the answer here like everywhere else. Correspondence games will keep you motivated and help you improve but if you wanna reflect your true rank, better keep the balance and play normal games every once in a while..</p>
]]></content:encoded></item><item><title><![CDATA[Hikaru no go - 2020]]></title><description><![CDATA[I have been a few years too late to post this but if you are a go player and still haven’t seen the Chinese take on the Hikaru no Go, continue reading…
I know that I already posted about a written sequel of Hikaru no Go, if you haven’t read it yet, h...]]></description><link>https://berkersen.dev/hikaru-no-go-2020</link><guid isPermaLink="true">https://berkersen.dev/hikaru-no-go-2020</guid><category><![CDATA[Go]]></category><category><![CDATA[Baduk]]></category><category><![CDATA[Game of go, ]]></category><category><![CDATA[Weiqi]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Thu, 13 Oct 2022 10:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/IxDPZ-AHfoI/upload/cc3a9e216145b7408466aac70ced3ad5.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have been a few years too late to post this but if you are a go player and still haven’t seen the Chinese take on the Hikaru no Go, continue reading…</p>
<p>I know that I already posted about a written sequel of Hikaru no Go, if you haven’t read it yet, here is the <a target="_blank" href="https://berker.substack.com/p/hikaru-no-go-sequel">link</a> and no this is not a sequel, so bear with me and read on..</p>
<p><a target="_blank" href="https://www.iqiyi.com/">iQIYI</a> is the leading entertainment service in China just like how Netflix is in the most of the world. Adapted from the renown Japanese Manga and later a cartoon serie Hikaru no Go to Chinese television which ended up being very successful internationally as well.</p>
<p>It follows the original plot but, to incorporate Chinese culture into the story, some tweaks have been made and honestly, I really like what they came up with in the end.</p>
<p>Without ruining the serie for you if you haven’t seen it already, here is a small synopsis of the story..</p>
<blockquote>
<p>Shi Guang who discovered an ancient go board in his grandfathers house by coincidence, got to know Chu Ying, a go master who’s soul has been entrenched in the go board and who has experienced thousands of years imprisoned in it. Under his influence, he gradually developed an interest in go and embark on a journey to become a professional go player.</p>
</blockquote>
<p>The best thing about it is, you can watch all the episodes for free on YouTube through the link down below, and yes, there are subtitles…</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/ZfblSbvhdSk">https://youtu.be/ZfblSbvhdSk</a></div>
]]></content:encoded></item><item><title><![CDATA[Go with the flow]]></title><description><![CDATA[As Artem Kachanovskyi won the European Go Championship 2019, I saw a picture of him with his award and a book raised in his hand, given as a prize I'm guessing. A book that somehow slipped pass by me.. It was Cho Hunhyun's "Go with the Flow". I purch...]]></description><link>https://berkersen.dev/go-with-the-flow</link><guid isPermaLink="true">https://berkersen.dev/go-with-the-flow</guid><category><![CDATA[go]]></category><category><![CDATA[Baduk]]></category><category><![CDATA[Game of go, ]]></category><category><![CDATA[Weiqi]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Thu, 13 Oct 2022 10:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/39kwjYVpfoY/upload/83e15c2c62ba59354ff7ed64c7eadd51.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As Artem Kachanovskyi won the European Go Championship 2019, I saw a picture of him with his award and a book raised in his hand, given as a prize I'm guessing. A book that somehow slipped pass by me.. It was Cho Hunhyun's "Go with the Flow". I purchased it immediately and started reading.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705483779121/cc83f0a5-8d2f-436a-a726-fe957d3b0fac.jpeg" alt class="image--center mx-auto" /></p>
<p>Cho Hunhyun is one of the greatest Go masters in history.He became a professional Go player at the age of nine as a child prodigy, he has won 1,935 matches and taken various championship titles as many as 160 times over 56 years, his record of the largest number of victories is still unbroken. When most professionals consider retirement, he became the oldest winner of a international competition at the age of 50. If you wanna know more about Cho Hunhyun, you can check his <a target="_blank" href="https://en.wikipedia.org/wiki/Cho_Hunhyun">Wikipedia page</a> or his page at <a target="_blank" href="https://senseis.xmp.net/?ChoHunHyeon">Sensei's Library</a>.</p>
<p>Most of the go books are educational, focuses on a subject like attacking, opening, joseki etc. and has a lot of diagrams of positions. There are just a handful of go books that are text only and goes deep into its philosophy, talk about the inner game of go and this is one of them. It's also a memoir of Cho's life, a door to his emotions, heart and mind. The stories with his cold but deep relationship with his teacher Segoe Kensaku, known through his students Cho Hunhyun, Utaro Hashimoto and Go Seigen. Stories that could have otherwise become forgotten.</p>
<p>There are lots of anecdotes from his life and comparisons from the go board to life itself.</p>
<blockquote>
<p>"The game of Go is not just a sport that one needs to win; it is a form of art, just like music or painting, with which one expresses one's unique individuality. In order for it to a be a work of art, it needs to have a creative and unique aspect that can speak to us. Go is not just about winning. More importantly, it is about expressing oneself."</p>
</blockquote>
<p>Master Shuko in a letter to Lee Changho, In "Go With the Flow"</p>
<p>It's not a book just for go players but for anyone who wants to learn from a master and I strongly recommend it. While reading the book I came a cross another name and a set of rules he has written that I had no idea of. Wang Jixin and "The Ten Golden Rules of Go". The <a target="_blank" href="https://berkersen.dev/the-ten-golden-rules">next post</a> is about that.</p>
]]></content:encoded></item><item><title><![CDATA[The ten golden rules]]></title><description><![CDATA[While I was reading Cho HunHyun's Go with the Flow, I came across a set of rules in the book, called "Ten Golden Rules of Go" written by Wang Jixin. Somehow I have never heard of it and wanted to share it with you. Unfortunately there are not much in...]]></description><link>https://berkersen.dev/the-ten-golden-rules</link><guid isPermaLink="true">https://berkersen.dev/the-ten-golden-rules</guid><category><![CDATA[go]]></category><category><![CDATA[Baduk]]></category><category><![CDATA[Game of go, ]]></category><category><![CDATA[Weiqi]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Thu, 13 Oct 2022 10:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/-1_RZL8BGBM/upload/cb402d851e8a6987f07cdb49edcdc6af.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>While I was reading Cho HunHyun's <a target="_blank" href="https://berkersen.dev/go-with-the-flow">Go with the Flow</a>, I came across a set of rules in the book, called "Ten Golden Rules of Go" written by Wang Jixin. Somehow I have never heard of it and wanted to share it with you. Unfortunately there are not much info about Wang Jixin and The Ten Golden Rules are attributed to him. Here is what I have found about Wang Jixin in internet:</p>
<p>Wang Jixin was a Go player in China during the Tang dynasty. Wang the Firewood Collector - the strongest player of his day (early 8th c.). He originally made a living collecting firewood but eventually became the official Hanlin Academy go tutor to the go mad Emperor Xuan Zong. There are many go tales from this period and Wang features in several.</p>
<p>But the actual list seems to be known first from a text of the Ming dynasty (1368~1644) by Liu Zhongda. In this the first maxim is given in the form bude tan sheng (you cannot be greedy and win).</p>
<p>There is a rumor in Japan that the list is the work of Honinbo Shusaku. This has caused a certain amount of umbrage in China.</p>
<p>There are several interpretations of the rules:</p>
<ol>
<li><p>The greedy do not get success</p>
</li>
<li><p>Be unhurried to enter opponent´s territory</p>
</li>
<li><p>Take care of oneself when attacking the other</p>
</li>
<li><p>Discard a stone to gain sente</p>
</li>
<li><p>Abandon small to save big</p>
</li>
<li><p>When in danger, sacrifice</p>
</li>
<li><p>Make thick shape, avoid hasty moves</p>
</li>
<li><p>A move must respond to the opponent's</p>
</li>
<li><p>Against strong positions, play safely</p>
</li>
<li><p>Look for peace, avoid fighting in an isolated or weak situation</p>
</li>
</ol>
<p>Here is another one:</p>
<ol>
<li><p>Greed fails!</p>
</li>
<li><p>Do not rush in</p>
</li>
<li><p>Check self, then hunt</p>
</li>
<li><p>Drop stones to lead</p>
</li>
<li><p>Drop small, save big</p>
</li>
<li><p>When chased, drop bags!</p>
</li>
<li><p>Play thick, not thin</p>
</li>
<li><p>Fight back, bow not!</p>
</li>
<li><p>Near strength, play safe</p>
</li>
<li><p>Where weak, dodge fights</p>
</li>
</ol>
<p>I found good explanations of the rules in the <a target="_blank" href="https://lifein19x19.com/viewtopic.php?f=12&amp;t=5540">lifein19x19 forum</a>:</p>
<ol>
<li><p>Greed fails - if you try to take too much, you may give an opportunity</p>
</li>
<li><p>Do not rush in - this seems to be the same idea as the proverb about invading one move before an opponent's moyo becomes territory</p>
</li>
<li><p>Check self, then fight - many books tell you to check your weaknesses before starting an attack. It's like putting on your armour before going into battle</p>
</li>
<li><p>Drop stones to lead - one interpretation is that you should let go of small groups in order to keep sente, that the gain of making a move in sente is greater than the loss of a single stone or two at the edge; more subtly, one should judge the value of an area (follow-ups, potential, etc.) before you defend it - it could be more lucrative to play elsewhere</p>
</li>
<li><p>Drop small, save big - Takao, especially, is fond of telling you to let go of "kasuishi" (unimportant stones). Learn to judge what is big, what is important, and drop stones that no longer have any value.</p>
</li>
<li><p>When chased, drop bags - if you are under attack by a gang of thugs, you might want to drop any bags that you don't absolutely have to keep at all costs, because it will help you to run faster and jump into a safer place</p>
</li>
<li><p>Play thick, not thin - leaving critical weaknesses behind might gain a temporary lead, but you will pay in the end</p>
</li>
<li><p>Fight back, bow not - this one is translated at "Each move must respond to the opponent". I take this to mean not just responding passively, but rather to mean matching up to every blow and refusing to yield (unless it's in your interests to do so)</p>
</li>
<li><p>Near strength, play safe - don't leave cuts lying around if you can't afford to lose something, don't start playing near thickness, don't make trouble when people nearby are carrying weapons</p>
</li>
<li><p>Where weak, dodge fights - see above: it's better to let go of something, than to fight for it all and lose it all</p>
</li>
</ol>
<p>That's it for now. Thanks for reading. If you have anything to add, share the knowledge and comment below..</p>
]]></content:encoded></item><item><title><![CDATA[Hikaru no go sequel]]></title><description><![CDATA[I don't know how many times I have seen 'Hikaru No Go' animation serie.. Whenever I lost motivation to play go, I started watching and before I know I was hooked back to go and usually ended up watching the whole serie to the end again. Everytime whe...]]></description><link>https://berkersen.dev/hikaru-no-go-sequel</link><guid isPermaLink="true">https://berkersen.dev/hikaru-no-go-sequel</guid><category><![CDATA[hikaru no go]]></category><category><![CDATA[Go]]></category><category><![CDATA[Baduk]]></category><category><![CDATA[Game of go, ]]></category><category><![CDATA[Weiqi]]></category><dc:creator><![CDATA[Berker Sen]]></dc:creator><pubDate>Thu, 13 Oct 2022 10:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/sZIF10zFs60/upload/aaabbea9dbe3a332514ac165d7f7172e.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I don't know how many times I have seen 'Hikaru No Go' animation serie.. Whenever I lost motivation to play go, I started watching and before I know I was hooked back to go and usually ended up watching the whole serie to the end again. Everytime when I got to the end it made me sad that it ended.. And it ended kinda abruptly in my opinion.</p>
<p><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6f14683-b0b4-4f68-9d8a-f1882be7bc92_390x550.jpeg" alt class="image--center mx-auto" /></p>
<p>So when I found out there is a <a target="_blank" href="https://m.fanfiction.net/s/2914615/1/The-Neverending-Road">sequel</a> written by a fan, I immediately started reading it and was once again hooked. The story takes place directly after the series ends with Volume 23 with the Hokuto Cup. There are 79 chapters. It's really well connected, it feels like you continue to watch the original serie and with the same style, very well written. If you have never seen or heard of 'Hikaru No Go', you should definitely watch or read it, you can even find it in YouTube. If you don't play go, I bet you will start playing after watching the series. I highly recommend reading the sequel after the serie, you will love it.. I hope in the future 'Hikaru no go' will be continued and who knows, maybe they might just film the sequel written by Leitbur. Here is the <a target="_blank" href="https://m.fanfiction.net/s/2914615/1/The-Neverending-Road">link</a>. Kudos to the Author Leitbur. Enjoy!</p>
]]></content:encoded></item></channel></rss>