[{"content":"As I\u0026rsquo;ve mentioned before, I love data. The more of it there is, the more fun it is to dig into. And I also have a deep passion for programming. Recently I started building an app with Dart + Flutter + Material Design 3 and fell in love with the language. The experience is very similar to what I felt when I first played with Kotlin — an incredibly engaging and beautiful language from JetBrains.\nFor example, I really liked type extensions. It\u0026rsquo;s a mind-blowing feature for a PHP developer. I\u0026rsquo;d desperately want something like this in PHP:\nextension Temperature on double{ static const double kelvinOffset = 273.15; double asTemperature(int degreesUnit) { return 0 == degreesUnit ? toCelsius : toFahrenheit; } double get toCelsius =\u0026gt; this - kelvinOffset; double get toFahrenheit =\u0026gt; toCelsius * (9/5) + 32; } import \u0026#39;package:weather/extension/temperature.dart\u0026#39;; final double temp = weather!.temperatureNow.asTemperature(degreesUnit); Language:Dart But let\u0026rsquo;s get to the point: Dart is not only a JIT language, it\u0026rsquo;s also a compiled one. I really liked that flexibility, so I decided to write my first CLI script for converting KML to GPX. For some reason, none of the free online tools could produce a valid GPX that Garmin Connect would accept — it kept throwing a parsing error. So I set aside one evening, opened the docs, and in less than an hour wrote my first working Dart program that can be easily run from the command line. It looks like this:\n103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 String convertKmlToGpx(XmlDocument kml, {required bool verbose}) { final name = kml.xpath(\u0026#39;/kml/Document/name\u0026#39;).first.innerText; final track = kml.xpath(\u0026#39;/kml/Document/Folder/Placemark\u0026#39;); final date = DateFormat(\u0026#39;y-M-dTH:m:s\u0026#39;).parse(track .map((node) =\u0026gt; node.findElements(\u0026#39;TimeStamp\u0026#39;).first.findElements(\u0026#39;when\u0026#39;)) .first .single .innerText .toString()); final builder = XmlBuilder(); builder.processing(\u0026#39;xml\u0026#39;, \u0026#39;version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;\u0026#39;); builder.element(\u0026#39;gpx\u0026#39;, nest: () { builder.attribute(\u0026#39;creator\u0026#39;, \u0026#39;enuage\u0026#39;); builder.attribute(\u0026#39;version\u0026#39;, version); builder.attribute(\u0026#39;xsi:schemaLocation\u0026#39;, \u0026#39;http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/11.xsd\u0026#39;); builder.attribute(\u0026#39;xmlns\u0026#39;, \u0026#39;http://www.topografix.com/GPX/1/1\u0026#39;); builder.attribute(\u0026#39;xmlns:xsi\u0026#39;, \u0026#39;http://www.w3.org/2001/XMLSchema-instance\u0026#39;); builder.attribute(\u0026#39;xmlns:ns2\u0026#39;, \u0026#39;http://www.garmin.com/xmlschemas/GpxExtensions/v3\u0026#39;); builder.element(\u0026#39;metadata\u0026#39;, nest: () { builder.element(\u0026#39;time\u0026#39;, nest: \u0026#39;${date.toIso8601String()}Z\u0026#39;); }); builder.element(\u0026#39;trk\u0026#39;, nest: () { builder.element(\u0026#39;name\u0026#39;, nest: name); builder.element(\u0026#39;trkseg\u0026#39;, nest: () { for (var node in track) { final when = node .findElements(\u0026#39;TimeStamp\u0026#39;) .firstOrNull ?.findElements(\u0026#39;when\u0026#39;) .firstOrNull ?.innerText .trim(); final coordinates = node .findElements(\u0026#39;Point\u0026#39;) .firstOrNull ?.findElements(\u0026#39;coordinates\u0026#39;) .firstOrNull ?.innerText .trim(); if (when == null || coordinates == null) continue; final parts = coordinates.split(\u0026#39;,\u0026#39;); if (parts.length \u0026lt; 2) continue; final longitude = double.tryParse(parts[0].trim()); final latitude = double.tryParse(parts[1].trim()); if (longitude == null || latitude == null) continue; final elevationM = parts.length \u0026gt; 2 ? double.tryParse(parts[2].trim()) : null; // final elevationF = elevationM != null ? elevationM * 3.28084 : null; builder.element( \u0026#39;trkpt\u0026#39;, attributes: {\u0026#39;lat\u0026#39;: \u0026#39;$latitude\u0026#39;, \u0026#39;lon\u0026#39;: \u0026#39;$longitude\u0026#39;}, nest: () { if (elevationM != null) { final eleStr = elevationM == elevationM.truncateToDouble() ? elevationM.toInt().toString() : \u0026#39;$elevationM\u0026#39;; builder.element(\u0026#39;ele\u0026#39;, nest: () =\u0026gt; builder.text(eleStr)); } builder.element(\u0026#39;time\u0026#39;, nest: () =\u0026gt; builder.text( \u0026#39;${DateFormat(\u0026#39;y-M-dTH:m:s+00:00\u0026#39;).parse(when).toIso8601String()}Z\u0026#39; )); }, ); } }); }); }); return builder.buildDocument().toXmlString(pretty: true); } Language:Dart Repository path: bin/kml2gpx.dart Commit: 924a1ac9 The script worked on the first try, parsed perfectly by Garmin Connect, and you can view the activity interactively:\nTitle\u0026colon;\u0026nbsp;\u0026laquo;BTI725 TBS (UGTB) ✈ RIX (EVRA)\u0026raquo;\n","permalink":"https://kiironoaki.gitlab.io/posts/20260605/","summary":"This was an interesting Dart programming exercise for me. I recently tried it while writing an Android app and fell in love with it. I want to write more in this language — small scripts and full backend programs.","title":"My very first useful Dart script"},{"content":"Here is another delightful script that I used in real production at work — I needed to calculate the distance between two locations given their coordinates. I\u0026rsquo;m not strong in math, so I didn\u0026rsquo;t reinvent the wheel and simply used a very concise formula, adapting it for PHP:\n\u0026lt;?php $earthRadius = 6371; // Kilometers $xLatitude = deg2rad(/** TODO */); $xLongitude = deg2rad(/** TODO */); $yLatitude = deg2rad(/** TODO */); $yLongitude = deg2rad(/** TODO */); $longitudeDelta = $xLongitude - $yLongitude; $angle = atan2( sqrt( pow(cos($xLatitude) * sin($longitudeDelta), 2) + pow(cos($yLatitude) * sin($xLatitude) - sin($yLatitude) * cos($xLatitude) * cos($longitudeDelta), 2) ), sin($yLatitude) * sin($xLatitude) + cos($yLatitude) * cos($xLatitude) * cos($longitudeDelta) ); echo $angle * $earthRadius; ","permalink":"https://kiironoaki.gitlab.io/posts/20260604-02/","summary":"PHP adaptation of the haversine formula for measuring distance between locations","title":"Distance between two coordinates in kilometers"},{"content":"I love data! For the most part, I enjoy programming not so much for the code itself, but for the fact that code operates on a huge variety of data and variables. I love optimizing data, structuring and logically organizing it. Maybe I should have gone into Data Science, but I know my limitations — I lack a strong mathematical foundation and knowledge of statistical analysis tools\nThat said, I love watching all kinds of charts, analyzing them, and finding patterns. Take GitLab activity data, for example. It\u0026rsquo;s only stored for 2–3 years, which is inconvenient for me — I\u0026rsquo;d like to track activity across years. That\u0026rsquo;s exactly why I created the following script. Completely primitive code that simply fetches data and converts it to CSV. Run it regularly, and you\u0026rsquo;ll be able to have such a nice infographic too\nWhy bother? Well… I can immediately see all 9 years of working at the company (yes, I didn\u0026rsquo;t come up with the script right away, so the first year is lost forever). I can see when I burned out, when I recovered and came back to the company, overtime periods and vacations. Anyway, it\u0026rsquo;s just an interesting part of my life\n\u0026lt;?php /** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ require_once __DIR__.\u0026#39;/vendor/autoload.php\u0026#39;; // const GITLAB_API_URI = ; // const GITLAB_API_TOKEN = ; // const GITLAB_USER_ID = ; try { $client = new Gitlab\\Client(); $client-\u0026gt;setUrl(GITLAB_API_URI); $client-\u0026gt;authenticate(GITLAB_API_TOKEN, Gitlab\\Client::AUTH_HTTP_TOKEN); $eventsArray = []; $page = 1; $fetched = 0; while (!isset($events) || !empty($events)) { $events = $client-\u0026gt;users()-\u0026gt;events(GITLAB_USER_ID, [ \u0026#39;page\u0026#39; =\u0026gt; $page, \u0026#39;per_page\u0026#39; =\u0026gt; 50, ]); $fetched += \\count($events); foreach ($events as $event) { $creationDate = new \\DateTimeImmutable($event[\u0026#39;created_at\u0026#39;]); $createdAt = $creationDate-\u0026gt;format(\u0026#39;Y-m-d\u0026#39;); $eventsArray[$createdAt] = ($eventsArray[$createdAt] ?? 0) + 1; unset($creationDate); } echo \\sprintf(\u0026#39;Page: %d\u0026#39;, $page).PHP_EOL; $page++; } echo \\sprintf(\u0026#39;Fetched: %d\u0026#39;, $fetched).PHP_EOL; // \\file_put_contents( // __DIR__.\u0026#39;/events.json\u0026#39;, // \\json_encode(\\array_map(static function ($value, $key) { // return [\u0026#39;date\u0026#39; =\u0026gt; $key, \u0026#39;count\u0026#39; =\u0026gt; $value]; // }, \\array_values($eventsArray), \\array_keys($eventsArray))) // ); $eventsCSV = \u0026#39;date,value\u0026#39;.PHP_EOL;; foreach ($eventsArray as $date =\u0026gt; $count) { $eventsCSV .= $date.\u0026#39;,\u0026#39;.$count.PHP_EOL; } \\file_put_contents(\u0026#39;events_fetched.csv\u0026#39;, $eventsCSV); return 0; } catch (\\Throwable $throwable) { echo \\sprintf(\u0026#39;Error: %s\u0026#39;, $throwable-\u0026gt;getMessage()); return 1; } { \u0026#34;type\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;license\u0026#34;: \u0026#34;CC-BY-4.0\u0026#34;, \u0026#34;minimum-stability\u0026#34;: \u0026#34;stable\u0026#34;, \u0026#34;prefer-stable\u0026#34;: true, \u0026#34;require\u0026#34;: { \u0026#34;php\u0026#34;: \u0026#34;\u0026gt;=7.4\u0026#34;, \u0026#34;ext-json\u0026#34;: \u0026#34;*\u0026#34;, \u0026#34;m4tthumphrey/php-gitlab-api\u0026#34;: \u0026#34;^11.4\u0026#34;, \u0026#34;guzzlehttp/guzzle\u0026#34;: \u0026#34;^7.2\u0026#34;, \u0026#34;http-interop/http-factory-guzzle\u0026#34;: \u0026#34;^1.0\u0026#34; } } ","permalink":"https://kiironoaki.gitlab.io/posts/20260604/","summary":"Nothing special — just a small script for collecting GitLab activity history","title":"GitLab activity data collection script"},{"content":" Manufacturer web-site: https://www.fujifilm-x.com/global/products/lenses/xf35mmf14-r/\nUser Manual\nOfficial web-site\nGoogle Drive backup\nAbbreviations Super EBC Multi-layer Super Electron Beam coating is applied to the surfaces of lens elements. This anti-reflection coating increases light transmission, eliminates flare and ghosting, and maintains color consistence among all lens models XF The lens is designed for Fujifilm APS-C digital mirrorless cameras R The lens is equipped with aperture ring Main info Original name Fujifilm Super EBC FUJINON XF 35mm F/1.4 Aspherical R System Fujifilm X (2012) Class Fast APS-C-format short telephoto prime lens Optical design Focal length 35mm Speed range ƒ/1.4 Maximum format APS-C Mount Fujifilm X Diagonal angle of view 44.2° (Fujifilm X APS-C) Lens construction 8 elements in 6 groups 1 aspherical low dispersion element Optical bench\n35mm comparison 35mm equivalent focal length range 53mm (in terms of field of view) Diaphragm Type Automatic Aperture control Aperture ring (manual settings + auto exposure setting) Number of blades 7 (rounded diaphragm opening) Step size ⅓EV (22 steps) Maximal aperture ƒ/1.4 Minimal aperture ƒ/16 Focusing Focus range 0.28m\u0026ndash;∞ Maximal magnification 0.17x Focusing modes Autofocus, manual focus Manual focus control Focusing ring Focus mode selector None; focusing mode is set from the camera Manual focus override in autofocus mode Determined by the camera Physical characteristics Weight 187g Maximum diameter x Length ⌀65×50.4mm Accessories Filters Screw-type, 52mm Lens hood Bayonet-type petal-shaped Source of data:\nhttps://www.fujifilm-x.com/global/products/lenses/xf35mmf14-r/specifications/ ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/fujinon-xf-35mm/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/lens/fujinon-xf-35.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cp\u003eManufacturer web-site: \u003ca href=\"https://www.fujifilm-x.com/global/products/lenses/xf35mmf14-r/\"\u003ehttps://www.fujifilm-x.com/global/products/lenses/xf35mmf14-r/\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003cp\u003e\u003cstrong\u003eUser Manual\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dl.fujifilm-x.com/support/manual/lenses/lens_xf18_xf35_xf60_manual_04.pdf\"\u003eOfficial web-site\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://drive.google.com/file/d/1bVvzaLj_m181Rhd_IfLEOYCLrqC4Hu0I/view?usp=sharing\"\u003eGoogle Drive backup\u003c/a\u003e\u003c/p\u003e\n\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"https://dl.fujifilm-x.com/support/manual/lenses/lens_xf18_xf35_xf60_manual_04.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eAbbreviations\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSuper EBC\u003c/td\u003e\n          \u003ctd\u003eMulti-layer Super Electron Beam coating is applied to the surfaces of lens elements. This anti-reflection coating increases light transmission, eliminates flare and ghosting, and maintains color consistence among all lens models\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eXF\u003c/td\u003e\n          \u003ctd\u003eThe lens is designed for Fujifilm APS-C digital mirrorless cameras\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eR\u003c/td\u003e\n          \u003ctd\u003eThe lens is equipped with aperture ring\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eMain info\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eOriginal name\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003eFujifilm Super EBC FUJINON XF 35mm F/1.4 Aspherical R\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSystem\u003c/td\u003e\n          \u003ctd\u003eFujifilm X (2012)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eClass\u003c/td\u003e\n          \u003ctd\u003eFast \u003ca href=\"/cheatsheets/image-sensor-format/#x-trans-cmos-5-aps-c\"\u003eAPS-C\u003c/a\u003e-format short telephoto prime lens\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eOptical design\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eFocal length\u003c/td\u003e\n          \u003ctd\u003e35mm\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSpeed range\u003c/td\u003e\n          \u003ctd\u003eƒ/1.4\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eMaximum format\u003c/td\u003e\n          \u003ctd\u003e\u003ca href=\"/cheatsheets/image-sensor-format/#x-trans-cmos-5-aps-c\"\u003eAPS-C\u003c/a\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eMount\u003c/td\u003e\n          \u003ctd\u003eFujifilm X\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eDiagonal angle of view\u003c/td\u003e\n          \u003ctd\u003e44.2° (Fujifilm X APS-C)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eLens construction\u003c/td\u003e\n          \u003ctd\u003e8 elements in 6 groups\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e1 aspherical low dispersion element\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/lens/fujinon-xf-35-construction.png\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cp\u003e\u003ca href=\"https://www.photonstophotos.net/GeneralTopics/Lenses/OpticalBench/OpticalBench.htm#Data/US20140285903_Example01P.txt\"\u003eOptical bench\u003c/a\u003e\u003c/p\u003e","title":"FUJINON XF 35mm F/1.4"},{"content":" Title\u0026colon;\u0026nbsp;\u0026laquo;Beier Precisa IIa\u0026raquo;\nAbout half a year ago, I wanted to experiment with medium format photography. Since I didn\u0026rsquo;t really like my Soviet-era \u0026ldquo;Lyubitel 166V\u0026rdquo;, I bought a Beier Precia IIa from a friend who sold me my Canon A-1 last year. It\u0026rsquo;s an amazing 1950s vintage rangefinder camera for 120 film. Unfortunately, the rangefinder is completely broken on my camera, so I have to figure out the distance by eye.\nWhen I bought it, it had a serious problem with the aperture, which wouldn\u0026rsquo;t close when taking a picture. I had to spend a little more and take it to a technician. By the way, here is a photo of the leaf shutter if anyone is interested:\nTitle\u0026colon;\u0026nbsp;\u0026laquo;Beier Precisa IIa\u0026raquo;\nThe problem turned out to be that because the camera hadn\u0026rsquo;t been used for a long time, oil had leaked into the leaf shutter and gummed up the diaphragm blades. Now it works perfectly without any issues. Yes, the repair was quite expensive, but it was worth it. Just look at that interesting distortion at the edges of the photo. I don\u0026rsquo;t know, maybe it\u0026rsquo;s a lens effect, and it always shot like that, but I really like it:\nTitle\u0026colon;\u0026nbsp;\u0026laquo;The forest\u0026raquo;\nTitle\u0026colon;\u0026nbsp;\u0026laquo;Rīga\u0026raquo;\nTitle\u0026colon;\u0026nbsp;\u0026laquo;Rīga\u0026raquo;\n","permalink":"https://kiironoaki.gitlab.io/posts/20250808/","summary":"New experiments with medium format","title":"Meet Beier Precisa IIa"},{"content":" Manufacturer web-site: https://fujifilm-x.com/global/products/lenses/xf50mmf2-r-wr/\nUser Manual\nOfficial web-site\nGoogle Drive backup\nAbbreviations Super EBC Multi-layer Super Electron Beam coating is applied to the surfaces of lens elements. This anti-reflection coating increases light transmission, eliminates flare and ghosting, and maintains color consistence among all lens models XF The lens is designed for Fujifilm APS-C digital mirrorless cameras R The lens is equipped with aperture ring WR Dust-proof and Weather-Resistant lens. Main info Announced January 2017 Original name FUJINON ASPHERICAL LENS SUPER EBC XF 50mm 1:2 R WR System Fujifilm X (2012) Class Fast APS-C-format short telephoto prime lens Optical design Focal length 50mm Speed range F/2 Maximum format APS-C Mount Fujifilm X Diagonal angle of view 31.8° (Fujifilm X APS-C) Lens construction 9 elements in 7 groups 1 aspherical low dispersion element Internal focusing Optical bench\n35mm comparison 35mm equivalent focal length range 76mm (in terms of field of view) 35mm equivalent speed range F/3 (in terms of depth of field) Diaphragm Type Automatic Aperture control Aperture ring (manual settings + auto exposure setting) Number of blades 9 (rounded diaphragm opening) Step size ⅓EV (19 steps) Maximal aperture ƒ/2 Minimal aperture ƒ/16 Focusing Focus range 0.39m\u0026ndash;∞ Magnification ratio 1:6.67 Focusing modes Autofocus, manual focus Autofocus motor Stepping motor Manual focus control Focusing ring Focus mode selector None; focusing mode is set from the camera Manual focus override in autofocus mode Determined by the camera Physical characteristics Weight 200g Maximum diameter x Length ⌀60×59.4mm Weather sealing Dust-proof and water-resistant barrel Accessories Filters Screw-type, 46mm Lens cap FLCP-46 Lens rear cap FLCP-001 Lens hood Bayonet-type petal-shaped Teleconverters Not compatible Source of data:\nhttps://lens-db.com/fujifilm-super-ebc-fujinon-xf-50mm-f2-aspherical-r-wr-2017/ https://fujifilm-x.com/global/products/lenses/xf50mmf2-r-wr/specifications/ ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/fujinon-xf-50mm/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/lens/fujinon-xf-50.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cp\u003eManufacturer web-site: \u003ca href=\"https://fujifilm-x.com/global/products/lenses/xf50mmf2-r-wr/\"\u003ehttps://fujifilm-x.com/global/products/lenses/xf50mmf2-r-wr/\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003cp\u003e\u003cstrong\u003eUser Manual\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dl.fujifilm-x.com/support/manual/lenses/lens_xf16mmf28_manual_01.pdf\"\u003eOfficial web-site\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://drive.google.com/file/d/19KJLfrPrpvDycvQoxeAzAd-YrZyK5RV-/view?usp=sharing\"\u003eGoogle Drive backup\u003c/a\u003e\u003c/p\u003e\n\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"https://dl.fujifilm-x.com/support/manual/lenses/lens_xf16mmf28_manual_01.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eAbbreviations\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSuper EBC\u003c/td\u003e\n          \u003ctd\u003eMulti-layer Super Electron Beam coating is applied to the surfaces of lens elements. This anti-reflection coating increases light transmission, eliminates flare and ghosting, and maintains color consistence among all lens models\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eXF\u003c/td\u003e\n          \u003ctd\u003eThe lens is designed for Fujifilm APS-C digital mirrorless cameras\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eR\u003c/td\u003e\n          \u003ctd\u003eThe lens is equipped with aperture ring\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eWR\u003c/td\u003e\n          \u003ctd\u003eDust-proof and Weather-Resistant lens.\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eMain info\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAnnounced\u003c/td\u003e\n          \u003ctd\u003eJanuary 2017\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eOriginal name\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003eFUJINON ASPHERICAL LENS SUPER EBC XF 50mm 1:2 R WR\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSystem\u003c/td\u003e\n          \u003ctd\u003eFujifilm X (2012)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eClass\u003c/td\u003e\n          \u003ctd\u003eFast \u003ca href=\"/cheatsheets/image-sensor-format/#x-trans-cmos-5-aps-c\"\u003eAPS-C\u003c/a\u003e-format short telephoto prime lens\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eOptical design\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eFocal length\u003c/td\u003e\n          \u003ctd\u003e50mm\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSpeed range\u003c/td\u003e\n          \u003ctd\u003eF/2\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eMaximum format\u003c/td\u003e\n          \u003ctd\u003e\u003ca href=\"/cheatsheets/image-sensor-format/#x-trans-cmos-5-aps-c\"\u003eAPS-C\u003c/a\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eMount\u003c/td\u003e\n          \u003ctd\u003eFujifilm X\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eDiagonal angle of view\u003c/td\u003e\n          \u003ctd\u003e31.8° (Fujifilm X APS-C)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eLens construction\u003c/td\u003e\n          \u003ctd\u003e9 elements in 7 groups\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e1 aspherical low dispersion element\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eInternal focusing\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/lens/fujinon-xf-50-construction.png\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cp\u003e\u003ca href=\"https://www.photonstophotos.net/GeneralTopics/Lenses/OpticalBench/OpticalBench.htm#Data/US010168507_Example04P.txt\"\u003eOptical bench\u003c/a\u003e\u003c/p\u003e","title":"FUJINON XF 50mm F/2"},{"content":"I don\u0026rsquo;t like zoom lenses; it\u0026rsquo;s a personal quirk. The kit lens I bought with my Fujifilm X-T5 is the Fujinon XF 18-55mm which, although good, operates at F/4 when set at 55mm. This requires revealing the full lens, which isn\u0026rsquo;t convenient for quick shooting. I prefer shooting quickly, without searching the right focus length. I had long considered a 50mm F/2 lens before buying the camera, and now I finally own one — it is shorter, smaller, faster, more secure. Perfect for street photography. The seller told me they bought it in Japan, giving this lens an interesting backstory. Who knows, maybe one day I\u0026rsquo;ll travel with it to its motherland\nUnlike the 18-55mm, this lens provides a very soft image, which I love. This photo of the church is just a quick test. More photos can be found in my Google Photos album. Also, this lens\u0026rsquo;s best feature is its weatherproof design, eliminating worries about rain and snow\nTitle\u0026colon;\u0026nbsp;\u0026laquo;Rīga Nativity of Christ Orthodox Cathedral\u0026raquo;\nCaptured on «Fujifilm X-T5»\nLens: FUJINON XF 50mm F/2 R WR Original file: Google Photos ","permalink":"https://kiironoaki.gitlab.io/posts/20250308/","summary":"This is the lens I wanted way before I bought my Fujifilm camera","title":"New gear: Fujinon XF 50mm F/2"},{"content":"Edited in Adobe Photoshop \u0026amp; Adobe Photoshop Lightroom\nTelegram channel: t.me/aki_photos\nInstagram: instagram.com/kiironoaki\nLicense: CC BY-SA 4.0\n","permalink":"https://kiironoaki.gitlab.io/posts/202410-october/","summary":"Autumn is my favourite season. Whole this photo album is captured on Fujifilm X-T5","title":"«October» (13 photos)"},{"content":" Title\u0026colon;\u0026nbsp;\u0026laquo;URTH Canon FD lens mount to Fujifilm X camera mount\u0026raquo;\nWhy I need it? You know, I have a lot of Canon FD lenses. I found this adapter before I bought the Fujifilm, and thought about it for a long time. The main problem with modern lenses is that they are very sharp. In pursuit of image quality, engineers missed a very important detail – softness of image. That\u0026rsquo;s why I\u0026rsquo;m usually very disappointed with my photographs \u0026ndash; they lack softness, cinematography, artistry. I don\u0026rsquo;t want to capture real world as it is, I want to capture something interesting, something cinematic, something that I can put in photo album and be proud of it. I don\u0026rsquo;t need sharpness and ultra-high image quality all the time. Imperfection makes a photograph real\nWhat\u0026rsquo;s the purpose? The film is expensive. Around 10-20€ per roll and ~7€ for development and scan. I hope, that with this adapter I can improve my skills in handling lenses, aperture and shutter speed faster and cheaper\nFocal length comparison cheatsheet Canon FD lens for 35mm film Fujifilm APS-C (crop factor = 0.7) Angle of view 100 mm 65.6 mm 24° 35-70 mm 23-45.9 mm 63-34° 35-105 mm 23-68.9 mm 63-23° 28 mm 18.4 mm 75° 50 mm 32.8 mm 46° 1\u0026rsquo; Update after experiments It turns out, that adapter not only help me to use Canon FD lenses, but also adjusts the difference between full-frame and cropped APS-C sensor! What a wonderful discovery! Looks like I don\u0026rsquo;t need the whole table above\nTitle\u0026colon;\u0026nbsp;\u0026laquo;Canon FDn 50mm \u0026 Fujinon XF 18-55mm comparison\u0026raquo;\n","permalink":"https://kiironoaki.gitlab.io/posts/20241017/","summary":"Finally, I can use my entire set of Canon FD lenses along with my Fujifilm X-T5","title":"New gear: URTH lens adapter"},{"content":" Optical bench\nAbbreviations FD The lens is designed for Canon 35mm film SLR cameras with the Canon FD mount N (Unofficial acronym) A new generation of FD series lenses without the breech-lock ring Optical design Speed range ƒ/1.8 Maximum format 35mm full frame Diagonal angle of view 46.8° Lens construction 6 elements in 4 groups Minimum Aperture ƒ/22 Diaphragm mechanism Diaphragm type Automatic Aperture control Aperture ring (Manual settings + Auto Exposure setting) Number of blades 5 Focusing Closest focusing distance 0.6m Magnification ratio 1:9.7 (0.103x) Focusing modes Manual focus only Manual focus control Focusing ring Physical characteristics Weight 170g Maximum diameter x Length ⌀63x35mm Accessories Filters Screw-type 52mm Lens hood BS-52 \u0026ndash; Bayonet-type round Teleconverters Canon Extender FD 2X-B → 100mm F/3.6 Sources of data\nhttps://lens-db.com/canon-fdn-50mm-f18-1979/ ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/canon-fdn-50mm/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/lens/canon-fdn-50mm.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003chr\u003e\n\u003cp\u003e\u003ca href=\"https://www.photonstophotos.net/GeneralTopics/Lenses/OpticalBench/OpticalBench.htm#Data/JP1988-081312_ExampleMLP.txt\"\u003eOptical bench\u003c/a\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eAbbreviations\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eFD\u003c/td\u003e\n          \u003ctd\u003eThe lens is designed for Canon 35mm film SLR cameras with the Canon FD mount\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eN\u003c/td\u003e\n          \u003ctd\u003e(Unofficial acronym) A new generation of FD series lenses without the breech-lock ring\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eOptical design\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eSpeed range\u003c/td\u003e\n          \u003ctd\u003eƒ/1.8\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMaximum format\u003c/td\u003e\n          \u003ctd\u003e35mm full frame\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eDiagonal angle of view\u003c/td\u003e\n          \u003ctd\u003e46.8°\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eLens construction\u003c/td\u003e\n          \u003ctd\u003e6 elements in 4 groups\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMinimum Aperture\u003c/td\u003e\n          \u003ctd\u003eƒ/22\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eDiaphragm mechanism\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eDiaphragm type\u003c/td\u003e\n          \u003ctd\u003eAutomatic\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eAperture control\u003c/td\u003e\n          \u003ctd\u003eAperture ring (Manual settings + Auto Exposure setting)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eNumber of blades\u003c/td\u003e\n          \u003ctd\u003e5\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eFocusing\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eClosest focusing distance\u003c/td\u003e\n          \u003ctd\u003e0.6m\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMagnification ratio\u003c/td\u003e\n          \u003ctd\u003e1:9.7 (0.103x)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eFocusing modes\u003c/td\u003e\n          \u003ctd\u003eManual focus only\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eManual focus control\u003c/td\u003e\n          \u003ctd\u003eFocusing ring\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003ePhysical characteristics\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eWeight\u003c/td\u003e\n          \u003ctd\u003e170g\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMaximum diameter x Length\u003c/td\u003e\n          \u003ctd\u003e⌀63x35mm\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eAccessories\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eFilters\u003c/td\u003e\n          \u003ctd\u003eScrew-type 52mm\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eLens hood\u003c/td\u003e\n          \u003ctd\u003eBS-52 \u0026ndash; Bayonet-type round\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eTeleconverters\u003c/td\u003e\n          \u003ctd\u003eCanon Extender FD 2X-B → 100mm F/3.6\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003chr\u003e\n\u003cp\u003eSources of data\u003c/p\u003e","title":"Canon FD 50mm F/1.8 S.C."},{"content":" Title\u0026colon;\u0026nbsp;\u0026laquo;Ducks\u0026raquo;\nCaptured on «Fujifilm X-T5», 4 October 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/5.4\u0026nbsp;\u0026nbsp;1/125s\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;Forest park\u0026raquo;\nCaptured on «Fujifilm X-T5», 4 October 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/5\u0026nbsp;\u0026nbsp;1/125s\nOriginal file: Google Photos Captured on «Fujifilm X-T5», 4 October 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/4\u0026nbsp;\u0026nbsp;1/125s\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;Leatherman® Skeletool® KBx\u0026raquo;\nCaptured on «Fujifilm X-T5», 4 October 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/5\u0026nbsp;\u0026nbsp;1/60s\nOriginal file: Google Photos Captured on «Fujifilm X-T5», 4 October 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/4\u0026nbsp;\u0026nbsp;1/60s\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;Tiny world\u0026raquo;\nCaptured on «Fujifilm X-T5», 4 October 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/4\u0026nbsp;\u0026nbsp;1/60s\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;Water drops\u0026raquo;\nCaptured on «Fujifilm X-T5», 4 October 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/4\u0026nbsp;\u0026nbsp;1/60s\nOriginal file: Google Photos Garmin stats for \u0026laquo;Forest walk\u0026raquo; Date\u0026colon; 4 October 2024 (Friday)\u0026nbsp;16:28 Location\u0026colon;Rīga, Latvia Time\u0026colon; 48:53 Distance\u0026colon; 1.84\u0026nbsp;km Steps\u0026colon; 2267 Avg. Pace\u0026colon; 26:32/km Avg. HR\u0026colon;\u0026nbsp; 91\u0026nbsp;bpm Elevation ascent\u0026colon; 15.2\u0026nbsp;m\u0026nbsp;\u0026uparrow; Elevation descent\u0026colon; 8.3\u0026nbsp;m\u0026nbsp;\u0026downarrow; Calories burned\u0026colon; 130\u0026nbsp;kcal Cadence\u0026colon; 30\u0026nbsp;spm Weather Condition\u0026colon; Cloudy Temperature\u0026colon; 11.1\u0026deg;C Humidity\u0026colon; 76\u0026percnt; Wind\u0026colon; North, 22\u0026nbsp;km/h Full stats:\u0026nbsp;https://connect.garmin.com/modern/activity/17201022232 ","permalink":"https://kiironoaki.gitlab.io/posts/20241004/","summary":"Hanging around the forest lake, searching for mushrooms and interesting compositions","title":"Forest after the rain (7 photo)"},{"content":"There is nothing better on your birthday than a good walk with cup of hot chocolate and a great camera along the night streets with beautiful lights, practicing in low light street photography\nTitle\u0026colon;\u0026nbsp;\u0026laquo;Warehouse\u0026raquo;\nCaptured on «Fujifilm X-T5», 2 October 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 39mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/3.6\u0026nbsp;\u0026nbsp;1/12s\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;Street lamp\u0026raquo;\nCaptured on «Fujifilm X-T5», 2 October 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 37mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/3.6\u0026nbsp;\u0026nbsp;1/10s\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;Flower in blue light\u0026raquo;\nCaptured on «Fujifilm X-T5», 2 October 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/4\u0026nbsp;\u0026nbsp;1/10s\u0026nbsp;\u0026nbsp;-1.3 step\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;Evening street\u0026raquo;\nCaptured on «Fujifilm X-T5», 2 October 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/4\u0026nbsp;\u0026nbsp;1/3s\u0026nbsp;\u0026nbsp;-1 step\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;East Europe panel building lights\u0026raquo;\nCaptured on «Fujifilm X-T5», 2 October 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/4\u0026nbsp;\u0026nbsp;1/3s\u0026nbsp;\u0026nbsp;-2.7 step\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;Garland on the balcony\u0026raquo;\nCaptured on «Fujifilm X-T5», 2 October 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/4\u0026nbsp;\u0026nbsp;1/3s\u0026nbsp;\u0026nbsp;-2.7 step\nOriginal file: Google Photos Garmin stats for \u0026laquo;Teika evening walk\u0026raquo; Date\u0026colon; 2 October 2024 (Wednesday)\u0026nbsp;17:58 Location\u0026colon;Rīga, Latvia Time\u0026colon; 2:27:36 Distance\u0026colon; 7.51\u0026nbsp;km Steps\u0026colon; 11333 Avg. Pace\u0026colon; 19:39/km Avg. HR\u0026colon;\u0026nbsp; 107\u0026nbsp;bpm Elevation ascent\u0026colon; 31.8\u0026nbsp;m\u0026nbsp;\u0026uparrow; Elevation descent\u0026colon; 34.2\u0026nbsp;m\u0026nbsp;\u0026downarrow; Calories burned\u0026colon; 485\u0026nbsp;kcal Cadence\u0026colon; 70\u0026nbsp;spm Weather Condition\u0026colon; Cloudy Temperature\u0026colon; 7.8\u0026deg;C Humidity\u0026colon; 100\u0026percnt; Wind\u0026colon; South, 11\u0026nbsp;km/h Full stats:\u0026nbsp;https://connect.garmin.com/modern/activity/17186391938 ","permalink":"https://kiironoaki.gitlab.io/posts/20241002/","summary":"There is nothing better on your birthday than a good walk with cup of hot chocolate and a great camera along the night streets with beautiful lights, practicing in low light street photography","title":"Teika evening walk (6 photo)"},{"content":" Title\u0026colon;\u0026nbsp;\u0026laquo;Tram window\u0026raquo;\nCaptured on «Fujifilm X-T5», 28 September 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 18mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/2.8\u0026nbsp;\u0026nbsp;1/1000s\u0026nbsp;\u0026nbsp;+0.3 step\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;Goths couple\u0026raquo;\nCaptured on «Fujifilm X-T5», 28 September 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/5\u0026nbsp;\u0026nbsp;1/120s\u0026nbsp;\u0026nbsp;+0.3 step\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;John Doe\u0026raquo;\nCaptured on «Fujifilm X-T5», 28 September 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/5\u0026nbsp;\u0026nbsp;1/85s\u0026nbsp;\u0026nbsp;+0.3 step\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;The lamp\u0026raquo;\nCaptured on «Fujifilm X-T5», 28 September 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/5\u0026nbsp;\u0026nbsp;1/105s\u0026nbsp;\u0026nbsp;+0.3 step\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;Tequila\u0026raquo;\nCaptured on «Fujifilm X-T5», 28 September 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/4\u0026nbsp;\u0026nbsp;1/6s\u0026nbsp;\u0026nbsp;+0.3 step\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;Jane Doe\u0026raquo;\nCaptured on «Fujifilm X-T5», 28 September 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 55mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/4\u0026nbsp;\u0026nbsp;1/4s\u0026nbsp;\u0026nbsp;+0.3 step\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;Neon\u0026raquo;\nCaptured on «Fujifilm X-T5», 28 September 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 37mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/4\u0026nbsp;\u0026nbsp;1/90s\u0026nbsp;\u0026nbsp;+0.3 step\nOriginal file: Google Photos Title\u0026colon;\u0026nbsp;\u0026laquo;Autumn\u0026raquo;\nCaptured on «Fujifilm X-T5», 29 September 2024\nLens: FUJINON XF18-55mm F/2.8-4 R LM OIS Details: 48mm\u0026nbsp;\u0026nbsp;800 ISO\u0026nbsp;\u0026nbsp;ƒ/5.6\u0026nbsp;\u0026nbsp;1/210s\nOriginal file: Google Photos ","permalink":"https://kiironoaki.gitlab.io/posts/20240928/","summary":"First experiments with the new camera in stunning resolution. Walking through the city, searching for a suitable composition","title":"Fujifilm X-T5: First attempts (8 photo)"},{"content":" Original file: Fujifilm X-T5 official website Why, if I\u0026rsquo;m capture on film? I really enjoy film photography, and it’s a lot of fun for me. However, I haven\u0026rsquo;t shot on film in a long time, and it shows—nearly two-thirds of my rolls end up in the bin due to underexposure or focus issues. I\u0026rsquo;ve even forgotten how to calculate shutter speed and properly use aperture settings, which is common when you don\u0026rsquo;t practice frequently. I’m excited to dive into many creative projects with Fujifilm:\nFirstly, I plan to buy a special adapter, which allow me to use my Canon FD lenses for training. I don\u0026rsquo;t know how perfect will become those photos, but I\u0026rsquo;m looking forward to play with my vintage lenses and hope the pictures would be fantastic\nSecondly, I plan to enhance my skills as street photographer and speedy autofocus on my Fujinon XF 18-55mm will help me, because people usually walking on streets and capturing them on film is very tricky issue. So instead of wasting film I will train in digital. I don\u0026rsquo;t even care about APS-C crop in this camera, because nobody of art photographers really does \u0026ndash; we\u0026rsquo;re buying cameras for soul, not for numbers\nAnd lastly, I plan to scan my film. Yep, with digital camera \u0026ndash; there are special thing called easy35, which allow me to photo my film photos and then show it in blog and Instagram\nWhy Fujifilm? I saw many cameras while decided to buy this Fujifilm. Sony and Canon simply don\u0026rsquo;t have vintage-looking camera. I haven\u0026rsquo;t found so. I like that my Fuji looks a little bit retro. In the end, I want not only functionality, but also have a pleasant experience from using the camera.\nBefore this camera I found Nikon Z fc, which also have retro vibes, but when I started comparing several cameras I decided to buy Fuji, because it has many special modes which simulates film directly in camera, it also has twice many megapixels in sensor and a lot of programmable buttons\nWhat about film? It wouldn\u0026rsquo;t be forgotten \u0026ndash; I will shoot on film as well as in digital, I just need some practice for good images\nWhat\u0026rsquo;s next? Firstly, I want to buy URTH adapter and practice more with Canon FD lenses, then I plan to buy a special developing tank and train in developing B/W and colour film. I also want to print my photos on paper in red room, but it maybe happens latter. Currently, I need a lot of practice\n","permalink":"https://kiironoaki.gitlab.io/posts/20240927-fujifilm-x-t5/","summary":"I bought a new camera for something interesting","title":"Fujifilm X-T5"},{"content":" Manufacturer web-site: https://fujifilm-x.com/global/products/lenses/xf18-55mmf28-4-r-lm-ois/\nUser Manual\nOfficial web-site\nGoogle Drive backup\nAbbreviations Super EBC Multi-layer Super Electron Beam coating is applied to the surfaces of lens elements. This anti-reflection coating increases light transmission, eliminates flare and ghosting, and maintains color consistence among all lens models XF The lens is designed for Fujifilm APS-C digital mirrorless cameras R The lens is equipped with aperture ring LM The lens is equipped with Linear Motor OIS The lens is equipped with Optical Image Stabilizer Main info Announced September 2012 Original name FUJINON ASPHERICAL LENS SUPER EBC XF 18-55mm 1:2.8-4 R LM OIS System Fujifilm X (2012) Class Slow APS-C-format standard zoom lens Optical design Focal length range 18mm - 55mm [3.1X zoom ratio] Speed range F/2.8 @ 18mm - F/4 @ 55mm Maximum format APS-C Mount Fujifilm X Diagonal angle of view 76.5° @ 18mm \u0026ndash; 29° @ 55mm (Fujifilm X APS-C) Lens construction 14 elements in 10 groups 3 aspherical elements, 1 low dispersion element Internal focusing Optical bench\n35mm comparison 35mm equivalent focal length range 27mm\u0026ndash;84mm (in terms of field of view) 35mm equivalent speed range F/4.3 @ 18mm - F/6.1 @ 55mm (in terms of depth of field) Diaphragm Type Automatic Aperture control Aperture ring (manual settings + auto exposure setting) Number of blades 7 (rounded diaphragm opening) Step size ⅓EV (19 steps) Minimal aperture ƒ/22 Maximal aperture ƒ/2.9\u0026ndash;ƒ/4 Zooming Mechanism Manual Control Zoom ring Type Rotary Method Extends while zooming Focusing Closest focusing distance 0.6m\u0026ndash;∞ 0.3m @ 18mm (in MACRO mode) 0.4m @ 55mm Magnification ratio 1:6.67 @ 55mm Focusing modes Autofocus, manual focus Autofocus motor Linear motor Manual focus control Focusing ring Focus mode selector None; focusing mode is set from the camera Manual focus override in autofocus mode Determined by the camera Optical Image Stabilizer Type Built-in Features Determined by the camera Efficiency Up to 4 stops @ 55mm Physical characteristics Weight 310g Maximum diameter x Length ⌀65×70.4mm / 97.9mm @ 55mm Accessories Filters Screw-type, 58mm Lens hood Bayonet-type petal-shaped Teleconverters Not compatible Source of data:\nhttps://lens-db.com/fujifilm-super-ebc-fujinon-xf-18-55mm-f28-4-aspherical-r-lm-ois-2012/ https://fujifilm-x.com/global/products/lenses/xf18-55mmf28-4-r-lm-ois/specifications/ ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/fujinon-xf-18-55mm/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/lens/fujinon-xf-18-55.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cp\u003eManufacturer web-site: \u003ca href=\"https://fujifilm-x.com/global/products/lenses/xf18-55mmf28-4-r-lm-ois/\"\u003ehttps://fujifilm-x.com/global/products/lenses/xf18-55mmf28-4-r-lm-ois/\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003cp\u003e\u003cstrong\u003eUser Manual\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dl.fujifilm-x.com/support/manual/lenses/lens_xf10-24_xf18-55_xf55-200_manual_02.pdf\"\u003eOfficial web-site\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://drive.google.com/file/d/1O2SdKPBCzxVfWg6RwzH-hAsm-tjiq93x/view?usp=sharing\"\u003eGoogle Drive backup\u003c/a\u003e\u003c/p\u003e\n\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"https://dl.fujifilm-x.com/support/manual/lenses/lens_xf10-24_xf18-55_xf55-200_manual_02.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eAbbreviations\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSuper EBC\u003c/td\u003e\n          \u003ctd\u003eMulti-layer Super Electron Beam coating is applied to the surfaces of lens elements. This anti-reflection coating increases light transmission, eliminates flare and ghosting, and maintains color consistence among all lens models\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eXF\u003c/td\u003e\n          \u003ctd\u003eThe lens is designed for Fujifilm APS-C digital mirrorless cameras\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eR\u003c/td\u003e\n          \u003ctd\u003eThe lens is equipped with aperture ring\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eLM\u003c/td\u003e\n          \u003ctd\u003eThe lens is equipped with Linear Motor\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eOIS\u003c/td\u003e\n          \u003ctd\u003eThe lens is equipped with Optical Image Stabilizer\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eMain info\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAnnounced\u003c/td\u003e\n          \u003ctd\u003eSeptember 2012\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eOriginal name\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003eFUJINON ASPHERICAL LENS SUPER EBC XF 18-55mm 1:2.8-4 R LM OIS\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSystem\u003c/td\u003e\n          \u003ctd\u003eFujifilm X (2012)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eClass\u003c/td\u003e\n          \u003ctd\u003eSlow \u003ca href=\"/cheatsheets/image-sensor-format/#x-trans-cmos-5-aps-c\"\u003eAPS-C-format\u003c/a\u003e standard zoom lens\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eOptical design\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eFocal length range\u003c/td\u003e\n          \u003ctd\u003e18mm - 55mm [3.1X zoom ratio]\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSpeed range\u003c/td\u003e\n          \u003ctd\u003eF/2.8 @ 18mm - F/4 @ 55mm\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eMaximum format\u003c/td\u003e\n          \u003ctd\u003e\u003ca href=\"/cheatsheets/image-sensor-format/#x-trans-cmos-5-aps-c\"\u003eAPS-C\u003c/a\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eMount\u003c/td\u003e\n          \u003ctd\u003eFujifilm X\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eDiagonal angle of view\u003c/td\u003e\n          \u003ctd\u003e76.5° @ 18mm \u0026ndash; 29° @ 55mm (Fujifilm X APS-C)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eLens construction\u003c/td\u003e\n          \u003ctd\u003e14 elements in 10 groups\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e3 aspherical elements, 1 low dispersion element\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eInternal focusing\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/lens/fujinon-xf-18-55-construction.png\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cp\u003e\u003ca href=\"https://www.photonstophotos.net/GeneralTopics/Lenses/OpticalBench/OpticalBench.htm#Data/US20150177500_Example01P.txt\"\u003eOptical bench\u003c/a\u003e\u003c/p\u003e","title":"FUJINON XF 18-55mm F/2.8-4"},{"content":" ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/focal-length-and-angle-of-view/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/cheatsheets/focal-length-angle-of-view.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e","title":"Focal length \u0026 angle of view"},{"content":" Common sensor formats 860 mm² area Full-frame digital SLR format, with sensor dimensions nearly equal to those of 35 mm film (36×24 mm) from Pentax, Panasonic, Leica, Nikon, Canon, Sony and Sigma. 370 mm² area APS-C standard format from Nikon, Pentax, Sony, Fujifilm, Sigma (crop factor 1.5) (Actual APS-C film is bigger, however.) 330 mm² area APS-C smaller format from Canon (crop factor 1.6) 225 mm² area Micro Four Thirds System format from Panasonic, Olympus, Black Magic and Polaroid (crop factor 2.0) X Trans CMOS 5 (APS-C) Maker Sony Aspect ratio 3:2 Maximum resolution 40.2 Megapixels (7782x5152) Film speed range 125-12800 Film speed range (extended) 64-51200 Source of data and images\nhttps://en.wikipedia.org/wiki/Image_sensor_format https://en.wikipedia.org/wiki/Fujifilm_X-T5 ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/image-sensor-format/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/cheatsheets/sensor_sizes_overlaid_inside.svg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003ch3 id=\"common-sensor-formats\"\u003eCommon sensor formats\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e860 mm²\u003c/code\u003e area \u003cstrong\u003eFull-frame digital SLR format\u003c/strong\u003e, with sensor dimensions nearly equal to those of 35 mm film (36×24 mm) from Pentax, Panasonic, Leica, Nikon, Canon, Sony and Sigma.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e370 mm²\u003c/code\u003e area \u003cstrong\u003eAPS-C\u003c/strong\u003e standard format from Nikon, Pentax, Sony, Fujifilm, Sigma (crop factor 1.5) (Actual APS-C film is bigger, however.)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e330 mm²\u003c/code\u003e area \u003cstrong\u003eAPS-C\u003c/strong\u003e smaller format from Canon (crop factor 1.6)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e225 mm²\u003c/code\u003e area \u003cstrong\u003eMicro Four Thirds\u003c/strong\u003e System format from Panasonic, Olympus, Black Magic and Polaroid (crop factor 2.0)\u003c/li\u003e\n\u003c/ul\u003e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/cheatsheets/sensor_sizes.svg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003ch3 id=\"x-trans-cmos-5-aps-c\"\u003eX Trans CMOS 5 (APS-C)\u003c/h3\u003e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/cheatsheets/x-trans-cmos-5.svg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eMaker\u003c/td\u003e\n          \u003ctd\u003eSony\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAspect ratio\u003c/td\u003e\n          \u003ctd\u003e3:2\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eMaximum resolution\u003c/td\u003e\n          \u003ctd\u003e40.2 Megapixels (7782x5152)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eFilm speed range\u003c/td\u003e\n          \u003ctd\u003e125-12800\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eFilm speed range (extended)\u003c/td\u003e\n          \u003ctd\u003e64-51200\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003chr\u003e\n\u003cp\u003eSource of data and images\u003c/p\u003e","title":"Image sensor formats"},{"content":"After Kodak T100Max I understood, that I don\u0026rsquo;t want to take pictures in B/W anymore. This collection and next one (ILFORD) would be the last in my current experiments.\nThese photos looks flat, empty, unreal. I don\u0026rsquo;t like it, because I returned back to film not for photographing reality \u0026ndash; I want tot capture my feelings of the moment. B/W film capture nothing but shape and shadows\n","permalink":"https://kiironoaki.gitlab.io/posts/20240906/","summary":"\u003cp\u003eAfter \u003ca href=\"/posts/20240828-kodak-t100max/\"\u003eKodak T100Max\u003c/a\u003e I understood, that I don\u0026rsquo;t\nwant to take pictures in B/W anymore. This collection and next one (ILFORD)\nwould be the last in my current experiments.\u003c/p\u003e\n\u003cp\u003eThese photos looks flat, empty, unreal. I don\u0026rsquo;t like it, because I returned back\nto film not for photographing reality \u0026ndash; I want tot capture my feelings of the\nmoment. B/W film capture nothing but shape and shadows\u003c/p\u003e","title":"Thoughts about B/W photo"},{"content":"Telegram channel: t.me/aki_photos\nInstagram: instagram.com/kiironoaki\nGoogle Photos album: https://photos.app.goo.gl/jzE69FvL8D4GvDVs9\nLicense: CC BY-SA 4.0\n","permalink":"https://kiironoaki.gitlab.io/posts/20240828-kodak-t100max/","summary":"A bunch of photos captured on Kodak T100Max, using Canon A-1 and various FD lenses","title":"«Kodak T100Max» (20 B/W photos)"},{"content":" Instruction manual in PDF format Abbreviations FD The lens is designed for Canon 35mm film SLR cameras with the Canon FD mount Optical design Magnification factor 2x Maximum format 35mm full frame Mount Canon FD Lens construction 6 elements in 4 groups Physical characteristics Weight 210g Maximum diameter x Length ⌀64×35.2mm Sources of data\nhttps://lens-db.com/tc/canon-extender-fd-2x-a/ ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/canon-fd-extender-2x-a/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/lens/canon-fd-extender-2x-a.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003ca href=\"/files/lens/canon-fd-extender-2x-a-manual.pdf\"\u003eInstruction manual\u003c/a\u003e in PDF format\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"/files/lens/canon-fd-extender-2x-a-manual.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eAbbreviations\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eFD\u003c/td\u003e\n          \u003ctd\u003eThe lens is designed for Canon 35mm film SLR cameras with the Canon FD mount\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eOptical design\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMagnification factor\u003c/td\u003e\n          \u003ctd\u003e2x\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMaximum format\u003c/td\u003e\n          \u003ctd\u003e35mm full frame\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMount\u003c/td\u003e\n          \u003ctd\u003eCanon FD\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eLens construction\u003c/td\u003e\n          \u003ctd\u003e6 elements in 4 groups\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003ePhysical characteristics\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eWeight\u003c/td\u003e\n          \u003ctd\u003e210g\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eMaximum diameter x Length\u003c/td\u003e\n          \u003ctd\u003e⌀64×35.2mm\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003chr\u003e\n\u003cp\u003eSources of data\u003c/p\u003e","title":"Canon Extender FD 2X-A"},{"content":" Abbreviations FD The lens is designed for Canon 35mm film SLR cameras with the Canon FD mount N (Unofficial acronym) A new generation of FD series lenses without the breech-lock ring Optical design Focal length range 35mm \u0026ndash; 105mm [3X zoom ratio] Speed range ƒ/3.5 across the focal length range Maximum format 35mm full frame Mount and Flange focal distance Canon FD [42mm] Diagonal angle of view 63.4° @ 35mm \u0026ndash; 23.3° @ 105mm (35mm full frame) Lens construction 15 elements in 13 groups Diaphragm mechanism Diaphragm type Automatic Aperture control Aperture ring (Manual settings + Auto Exposure setting) Number of blades 5 Zooming Zoom mechanism Manual Zoom control Zoom ring Zoom type Rotary Focusing Closest focusing distance 1.5m Magnification ratio 1:12.66 @ 105mm Focusing modes Manual focus only Manual focus control Focusing ring Physical characteristics Weight 600g Maximum diameter x Length ⌀76.5×108.4mm Accessories Filters Screw-type 72mm Lens hood BW-72B \u0026ndash; Bayonet-type round Teleconverters Canon Extender FD 2X-B → 70-210mm F/7 Sources of data\nhttps://lens-db.com/canon-fdn-35-105mm-f35-1981/?tab=description ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/canon-fdn-35-105mm/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/lens/canon-fdn-35-105.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003chr\u003e\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eAbbreviations\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eFD\u003c/td\u003e\n          \u003ctd\u003eThe lens is designed for Canon 35mm film SLR cameras with the Canon FD mount\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eN\u003c/td\u003e\n          \u003ctd\u003e(Unofficial acronym) A new generation of FD series lenses without the breech-lock ring\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eOptical design\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eFocal length range\u003c/td\u003e\n          \u003ctd\u003e35mm \u0026ndash; 105mm [3X zoom ratio]\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eSpeed range\u003c/td\u003e\n          \u003ctd\u003eƒ/3.5 across the focal length range\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMaximum format\u003c/td\u003e\n          \u003ctd\u003e35mm full frame\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMount and Flange focal distance\u003c/td\u003e\n          \u003ctd\u003eCanon FD [42mm]\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eDiagonal angle of view\u003c/td\u003e\n          \u003ctd\u003e63.4° @ 35mm \u0026ndash; 23.3° @ 105mm (35mm full frame)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eLens construction\u003c/td\u003e\n          \u003ctd\u003e15 elements in 13 groups\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eDiaphragm mechanism\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eDiaphragm type\u003c/td\u003e\n          \u003ctd\u003eAutomatic\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eAperture control\u003c/td\u003e\n          \u003ctd\u003eAperture ring (Manual settings + Auto Exposure setting)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eNumber of blades\u003c/td\u003e\n          \u003ctd\u003e5\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eZooming\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eZoom mechanism\u003c/td\u003e\n          \u003ctd\u003eManual\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eZoom control\u003c/td\u003e\n          \u003ctd\u003eZoom ring\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eZoom type\u003c/td\u003e\n          \u003ctd\u003eRotary\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eFocusing\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eClosest focusing distance\u003c/td\u003e\n          \u003ctd\u003e1.5m\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMagnification ratio\u003c/td\u003e\n          \u003ctd\u003e1:12.66 @ 105mm\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eFocusing modes\u003c/td\u003e\n          \u003ctd\u003eManual focus only\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eManual focus control\u003c/td\u003e\n          \u003ctd\u003eFocusing ring\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003ePhysical characteristics\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eWeight\u003c/td\u003e\n          \u003ctd\u003e600g\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMaximum diameter x Length\u003c/td\u003e\n          \u003ctd\u003e⌀76.5×108.4mm\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eAccessories\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eFilters\u003c/td\u003e\n          \u003ctd\u003eScrew-type 72mm\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eLens hood\u003c/td\u003e\n          \u003ctd\u003eBW-72B \u0026ndash; Bayonet-type round\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eTeleconverters\u003c/td\u003e\n          \u003ctd\u003eCanon Extender FD 2X-B → 70-210mm F/7\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003chr\u003e\n\u003cp\u003eSources of data\u003c/p\u003e","title":"Canon FDn 35-105mm F/3.5"},{"content":" Abbreviations FD The lens is designed for Canon 35mm film SLR cameras with the Canon FD mount N (Unofficial acronym) A new generation of FD series lenses without the breech-lock ring Optical design Focal length range 35mm \u0026ndash; 70mm [2X zoom ratio] Speed range ƒ/3.5 @ 35mm \u0026ndash; ƒ/4.5 @ 70mm Maximum format 35mm full frame Mount and Flange focal distance Canon FD [42mm] Diagonal angle of view 63.4° @ 35mm - 34.3° @ 70mm (35mm full frame) Lens construction 9 elements in 8 groups Diaphragm mechanism Diaphragm type Automatic Aperture control Aperture ring (Manual settings + Auto Exposure setting) Number of blades 8 Zooming Zoom mechanism Manual Zoom control Zoom ring Zoom type Rotary Focusing Closest focusing distance 0.5m Magnification ratio 1:6.67 @ 70mm Focusing modes Manual focus only Manual focus control Focusing ring Physical characteristics Weight 200g Maximum diameter x Length ⌀63×60.9mm Accessories Filters Screw-type 52mm Lens hood BW-58C - Bayonet-type round Teleconverters Canon Extender FD 2X-B → 70-140mm F/7-9 Sources of data\nhttps://lens-db.com/canon-fdn-35-70mm-f35-45-1983/ ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/canon-fdn-35-70mm/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/lens/canon-fdn-35-70.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003chr\u003e\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eAbbreviations\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eFD\u003c/td\u003e\n          \u003ctd\u003eThe lens is designed for Canon 35mm film SLR cameras with the Canon FD mount\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eN\u003c/td\u003e\n          \u003ctd\u003e(Unofficial acronym) A new generation of FD series lenses without the breech-lock ring\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eOptical design\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eFocal length range\u003c/td\u003e\n          \u003ctd\u003e35mm \u0026ndash; 70mm [2X zoom ratio]\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eSpeed range\u003c/td\u003e\n          \u003ctd\u003eƒ/3.5 @ 35mm \u0026ndash; ƒ/4.5 @ 70mm\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMaximum format\u003c/td\u003e\n          \u003ctd\u003e35mm full frame\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMount and Flange focal distance\u003c/td\u003e\n          \u003ctd\u003eCanon FD [42mm]\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eDiagonal angle of view\u003c/td\u003e\n          \u003ctd\u003e63.4° @ 35mm - 34.3° @ 70mm (35mm full frame)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eLens construction\u003c/td\u003e\n          \u003ctd\u003e9 elements in 8 groups\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eDiaphragm mechanism\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eDiaphragm type\u003c/td\u003e\n          \u003ctd\u003eAutomatic\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eAperture control\u003c/td\u003e\n          \u003ctd\u003eAperture ring (Manual settings + Auto Exposure setting)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eNumber of blades\u003c/td\u003e\n          \u003ctd\u003e8\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eZooming\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eZoom mechanism\u003c/td\u003e\n          \u003ctd\u003eManual\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eZoom control\u003c/td\u003e\n          \u003ctd\u003eZoom ring\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eZoom type\u003c/td\u003e\n          \u003ctd\u003eRotary\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eFocusing\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eClosest focusing distance\u003c/td\u003e\n          \u003ctd\u003e0.5m\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMagnification ratio\u003c/td\u003e\n          \u003ctd\u003e1:6.67 @ 70mm\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eFocusing modes\u003c/td\u003e\n          \u003ctd\u003eManual focus only\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eManual focus control\u003c/td\u003e\n          \u003ctd\u003eFocusing ring\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003ePhysical characteristics\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eWeight\u003c/td\u003e\n          \u003ctd\u003e200g\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMaximum diameter x Length\u003c/td\u003e\n          \u003ctd\u003e⌀63×60.9mm\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eAccessories\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eFilters\u003c/td\u003e\n          \u003ctd\u003eScrew-type 52mm\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eLens hood\u003c/td\u003e\n          \u003ctd\u003eBW-58C - Bayonet-type round\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eTeleconverters\u003c/td\u003e\n          \u003ctd\u003eCanon Extender FD 2X-B → 70-140mm F/7-9\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003chr\u003e\n\u003cp\u003eSources of data\u003c/p\u003e","title":"Canon FDn 35-70mm F/3.5-4.5"},{"content":" License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Luckily for me, the person who sold me the camera, also agreed to sell me 3 more lenses and one extender for Canon FD bayonet. So now I can shoot different type of photos and not using only my 100mm F/2.8 lens despite the fact that it still remains my favorite for now. I didn\u0026rsquo;t buy these lenses by accident. I need them for one idea that I don\u0026rsquo;t want to talk about yet.\nAlso, I copied information about these lenses and my 100mm as well to cheatsheets. If you\u0026rsquo;re interested, you can find all of them, using tag [cheatsheets]\nSo, my new lenses are:\nCanon Extender FD 2X-A \u0026ndash; I really liked this one, by the way. Let\u0026rsquo;s see what kind of photos come out using it Canon FDn 35-70mm F/3.5-4.5 Canon FDn 35-105mm F/3.5 Polar Automatic MC 28mm F/2.8 Stay tuned for new photos ;)\n","permalink":"https://kiironoaki.gitlab.io/posts/20240818-new-lenses/","summary":"3 new lenses + 2X extender!","title":"New lenses for Canon FD bayonet"},{"content":" Information Bayonet Canon FD Focusing Manual Focal length 28mm Max. Aperture 1:2.8 Aperture Blades 6 Lens Type Prime Lens Close Focus Distance 0.2m Filter Thread 52mm Weight 220g Sources of data\nhttps://fk-secondhand.com/en/shop/polar-28mm-f-28-fuer-canon-fd-904558/ ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/polar-28mm/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/lens/polar-28mm.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003chr\u003e\n\u003cstyle\u003e\n    table {\n        width: 100%;\n        display: table;\n    }\n\n    table td:first-child {\n        width: 40%;\n    }\n\u003c/style\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: left\"\u003eInformation\u003c/th\u003e\n          \u003cth\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eBayonet\u003c/td\u003e\n          \u003ctd\u003eCanon FD\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eFocusing\u003c/td\u003e\n          \u003ctd\u003eManual\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eFocal length\u003c/td\u003e\n          \u003ctd\u003e28mm\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eMax. Aperture\u003c/td\u003e\n          \u003ctd\u003e1:2.8\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eAperture Blades\u003c/td\u003e\n          \u003ctd\u003e6\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eLens Type\u003c/td\u003e\n          \u003ctd\u003ePrime Lens\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eClose Focus Distance\u003c/td\u003e\n          \u003ctd\u003e0.2m\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eFilter Thread\u003c/td\u003e\n          \u003ctd\u003e52mm\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: left\"\u003eWeight\u003c/td\u003e\n          \u003ctd\u003e220g\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\u003chr\u003e\n\u003cp\u003eSources of data\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://fk-secondhand.com/en/shop/polar-28mm-f-28-fuer-canon-fd-904558/\"\u003ehttps://fk-secondhand.com/en/shop/polar-28mm-f-28-fuer-canon-fd-904558/\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e","title":"Polar Automatic MC 28mm F/2.8"},{"content":" I don\u0026rsquo;t know who\u0026rsquo;s fault it is \u0026ndash; my own, film development or manufacturer, but all photos I got on this film are covered by green patina. Of course, they are now more artistic, but it\u0026rsquo;s definitely not what I expected from it\nTelegram channel: t.me/aki_photos\nInstagram: instagram.com/kiironoaki\nGoogle Photos album: https://photos.app.goo.gl/huwWXX87LXMAUkhX7\nLicense: CC BY-SA 4.0\n","permalink":"https://kiironoaki.gitlab.io/posts/20240817-harman-phoenix/","summary":"I bought this film for experiments, but I don\u0026rsquo;t like the result","title":"«Harman Phoenix 200» (12 photos)"},{"content":"Telegram channel: t.me/aki_photos\nInstagram: instagram.com/kiironoaki\nGoogle Photos album: https://photos.app.goo.gl/umzQ6cY2ju9TEBoN8\nLicense: CC BY-SA 4.0\n","permalink":"https://kiironoaki.gitlab.io/posts/20240817-kodak-gold-200/","summary":"A bunch of photos captured on Kodak Gold 200, using Canon A-1 with Canon FD 100mm F/2.8 S.S.C lens","title":"Hanging around Rīga, with «Kodak Gold 200» (17 photos)"},{"content":"Telegram channel: t.me/aki_photos\nInstagram: instagram.com/kiironoaki\nGoogle Photos album: https://photos.app.goo.gl/RvjyhVr2ti7E13d38\nLicense: CC BY-SA 4.0\n","permalink":"https://kiironoaki.gitlab.io/posts/20240816-kodak-ultramax-400/","summary":"A bunch of photos captured on Kodak UltraMax 400, using Canon A-1 with Canon FD 100mm F/2.8 S.S.C lens","title":"«Kodak UltraMax 400» (21 photos)"},{"content":" Title\u0026colon;\u0026nbsp;\u0026laquo;Little sprout\u0026raquo;\nCaptured on «Canon A-1»\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Fujifilm C200 Original file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 ","permalink":"https://kiironoaki.gitlab.io/posts/20240723-02/","summary":"The biggest of the little ones","title":"«Little sprout»"},{"content":" Title\u0026colon;\u0026nbsp;\u0026laquo;Evening window\u0026raquo;\nCaptured on «Canon A-1»\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Fujifilm C200 Original file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 ","permalink":"https://kiironoaki.gitlab.io/posts/20240723-01/","summary":"Yes, I\u0026rsquo;m very inspired by this ugly dirty window","title":"Window again"},{"content":" Title\u0026colon;\u0026nbsp;\u0026laquo;Birds in the sky\u0026raquo;\nCaptured on «Canon A-1»\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Fujifilm C200 Original file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Title\u0026colon;\u0026nbsp;\u0026laquo;Birds' music\u0026raquo;\nCaptured on «Canon A-1»\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Fujifilm C200 Original file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 ","permalink":"https://kiironoaki.gitlab.io/posts/20240722-03/","summary":"Little dots","title":"«Birds in the sky»"},{"content":" URL:\u0026nbsp;https://www.harmanphoto.co.uk/harman-phoenix-200 Original Ilford datasheet in PDF ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/harman-phoenix-200/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/film/harman-phoenix-200.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \u003cp\u003e\u003cb\u003eURL\u003c/b\u003e:\u0026nbsp;\u003ca href=\"https://www.harmanphoto.co.uk/harman-phoenix-200\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003ehttps://www.harmanphoto.co.uk/harman-phoenix-200\u003c/a\u003e\n\u003c/p\u003e\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003ca href=\"https://www.harmanphoto.co.uk/amfile/file/download/file/1963/product/2143/\"\u003eOriginal Ilford datasheet in PDF\u003c/a\u003e\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"/files/film/harman-phoenix-200-data-sheet.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e","title":"Harman Phoenix 200"},{"content":" URL:\u0026nbsp;https://www.ilfordphoto.com/delta-400-professional-35mm Original Ilford datasheet in PDF Original Ilford processing chart in PDF ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/ilford-delta-400/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/film/ilford-delta-400.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \u003cp\u003e\u003cb\u003eURL\u003c/b\u003e:\u0026nbsp;\u003ca href=\"https://www.ilfordphoto.com/delta-400-professional-35mm\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003ehttps://www.ilfordphoto.com/delta-400-professional-35mm\u003c/a\u003e\n\u003c/p\u003e\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003ca href=\"https://www.ilfordphoto.com/amfile/file/download/file/1915/product/684/\"\u003eOriginal Ilford datasheet in PDF\u003c/a\u003e\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"/files/film/ilford-delta-400-data-sheet.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003ca href=\"https://www.ilfordphoto.com/amfile/file/download/file/1953/product/701/\"\u003eOriginal Ilford processing chart in PDF\u003c/a\u003e\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"/files/film/ilford-processing.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e","title":"Ilford DELTA 400 B/W"},{"content":" URL:\u0026nbsp;https://www.ilfordphoto.com/kentmere-400-35mm Original Ilford datasheet in PDF Original Ilford processing chart in PDF ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/kentmere-pan-400/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/film/kentmere-pan-400.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \u003cp\u003e\u003cb\u003eURL\u003c/b\u003e:\u0026nbsp;\u003ca href=\"https://www.ilfordphoto.com/kentmere-400-35mm\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003ehttps://www.ilfordphoto.com/kentmere-400-35mm\u003c/a\u003e\n\u003c/p\u003e\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003ca href=\"https://www.ilfordphoto.com/amfile/file/download/file/1959/product/697/\"\u003eOriginal Ilford datasheet in PDF\u003c/a\u003e\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"/files/film/kentmere-pan-400-data-sheet.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003ca href=\"https://www.ilfordphoto.com/amfile/file/download/file/1953/product/701/\"\u003eOriginal Ilford processing chart in PDF\u003c/a\u003e\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"/files/film/ilford-processing.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e","title":"Kentmere PAN 400 B/W"},{"content":" URL:\u0026nbsp;https://kodakprofessional.com/photographers/film/color/kodak-professional-portra-400-film/516 Original Kodak datasheet in PDF ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/kodak-portra-400/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/film/kodak-portra-400.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \u003cp\u003e\u003cb\u003eURL\u003c/b\u003e:\u0026nbsp;\u003ca href=\"https://kodakprofessional.com/photographers/film/color/kodak-professional-portra-400-film/516\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003ehttps://kodakprofessional.com/photographers/film/color/kodak-professional-portra-400-film/516\u003c/a\u003e\n\u003c/p\u003e\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003ca href=\"https://kodakprofessional.com/sites/default/files/wysiwyg/pro/resources/e4050_portra_400.pdf\"\u003eOriginal Kodak datasheet in PDF\u003c/a\u003e\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"/files/film/kodak-portra-400-data-sheet.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e","title":"Kodak Portra 400"},{"content":" Title\u0026colon;\u0026nbsp;\u0026laquo;Seagull\u0026raquo;\nCaptured on «Canon A-1»\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Fujifilm C200 Original file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 ","permalink":"https://kiironoaki.gitlab.io/posts/20240722-02/","summary":"Chilling birds","title":"«Seagull»"},{"content":" Title\u0026colon;\u0026nbsp;\u0026laquo;In the middle of the lake\u0026raquo;\nCaptured on «Canon A-1»\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Fujifilm C200 Original file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 ","permalink":"https://kiironoaki.gitlab.io/posts/20240722-01/","summary":"Chilling birds","title":"«In the middle of the lake»"},{"content":" URL:\u0026nbsp;https://www.ilfordphoto.com/sfx-200-35mm Original Ilford datasheet in PDF Original Ilford processing chart in PDF ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/ilford-sfx-200/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/film/ilford-SFX-200.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \u003cp\u003e\u003cb\u003eURL\u003c/b\u003e:\u0026nbsp;\u003ca href=\"https://www.ilfordphoto.com/sfx-200-35mm\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003ehttps://www.ilfordphoto.com/sfx-200-35mm\u003c/a\u003e\n\u003c/p\u003e\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003ca href=\"https://www.ilfordphoto.com/amfile/file/download/file/1907/product/701/\"\u003eOriginal Ilford datasheet in PDF\u003c/a\u003e\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"/files/film/ilford-SFX-C200-data-sheet.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003ca href=\"https://www.ilfordphoto.com/amfile/file/download/file/1953/product/701/\"\u003eOriginal Ilford processing chart in PDF\u003c/a\u003e\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"/files/film/ilford-SFX-200-processing.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e","title":"Ilford SFX 200 B/W"},{"content":" URL:\u0026nbsp;https://kodakprofessional.com/photographers/film/everyday-film Original Kodak datasheet in PDF ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/kodak-gold-200/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/film/kodak-gold-200.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \u003cp\u003e\u003cb\u003eURL\u003c/b\u003e:\u0026nbsp;\u003ca href=\"https://kodakprofessional.com/photographers/film/everyday-film\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003ehttps://kodakprofessional.com/photographers/film/everyday-film\u003c/a\u003e\n\u003c/p\u003e\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003ca href=\"https://business.kodakmoments.com/sites/default/files/files/resources/E7022_Gold_200.pdf\"\u003eOriginal Kodak datasheet in PDF\u003c/a\u003e\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"/files/film/kodak-gold-200-data-sheet.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e","title":"Kodak Gold 200"},{"content":" Original file: download Original Kodak datasheet in PDF ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/kodak-ultra-max-400/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/film/kodak-ultramax-400.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n            \n            \n\n            \n\n            \n        \u003cp\u003e\u003cb\u003eOriginal file\u003c/b\u003e: \u003ca href=\"https://kodakprofessional.com/photographers/film/everyday-film\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003edownload\u003c/a\u003e\n\u003c/p\u003e\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003ca href=\"http://apps.kodakmoments.com/wp-content/uploads/2017/07/E7023_max_400.pdf\"\u003eOriginal Kodak datasheet in PDF\u003c/a\u003e\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"/files/film/kodak-ultra-max-400-data-sheet.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e","title":"Kodak UltraMax 400"},{"content":" Captured on «Canon A-1», 21 July 2024\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Fujifilm C200 Original file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 ","permalink":"https://kiironoaki.gitlab.io/posts/20240721-03/","summary":"Experiments with double exposure","title":"The river double exposure"},{"content":" Manual focus medium telephoto lens made for FD-mount 35mm SLRs by Canon starting in 1973. Uses Canon\u0026rsquo;s Super Spectra Coating (S.S.C.). Has Canon\u0026rsquo;s older-style breech-lock mount. Metal body available in black.\nCanon\u0026rsquo;s FD mount came as the next logical step after the FL and R SLR mounts. All three of these used breech-lock systems, although Canon later abandoned this with their New FD (FDn) lenses. All FD lenses can be used on all FD bodies, though, and FL lenses can be used on most FD bodies as well.\nOne big advantage of the FD system was open-aperture metering, where the photographer could focus and meter without manually stopping down the lens' aperture. Another big advantage of the FD system was its capacity for automatic exposure. Cameras like the Canon AE-1 and A-1 are capable of advanced automatic exposure with all FD lenses. Over its two-decade production run, Canon introduced 134 different lenses for the FD system. These range from 7.5mm fisheyes to 1200mm ultra-telephotos.\nOne of the most popular models in the FD lineup was the Canon AE-1 Program, which sold well over one million units during the 1980s. Canon FD lenses, (especially the oldest S.S.C models) are regaining popularity in part due to their similarity to Canon K35 cinema lenses. The rise of mirror-less cameras has also given FD lenses new life outside of 35mm photography.\nAbbreviations FD The lens is designed for Canon 35mm film SLR cameras with the Canon FD mount S.S.C. Multi-layer Super Spectra coating is applied to the surfaces of lens elements. This anti-reflection coating increases light transmission, eliminates flare and ghosting, and maintains color consistence among all lens models. Main info Marketed March 1973 Function Auto Aperture, Full aperture metering (AE operation when used with ALL Canon automatic SLR cameras Coating S.S.C (super spectra coating) Optical design Focal length 100mm Maximum format 35mm full frame Mount and Flange focal distance: Canon FD (42mm) Angle of view Diagonal: 24° Vertical: 14° Horizontal: 20° Lens construction 5 elements in 5 groups Diaphragm Diaphragm type Automatic Aperture control Aperture ring (manual settings + auto exposure setting) Aperture ratio 1:2.8 Minimum aperture 22 Maximum aperture 2.8 Number of blades 8 Focusing Closest focusing distance 1m Magnification ratio 1:7.7 Focusing modes Manual focus only Manual focus control Focusing ring Accessories Filters Screw-type 55mm Lens hood BT-55 - Bayonet-type round Teleconverters Canon Extender FD 2X-B → 200mm F/5.6 Cap C-52 Physical characteristics Weight 360g Maximum diameter x length ⌀67x57mm Sources of data\nhttps://global.canon/en/c-museum/product/fd165.html https://kamerastore.com/products/canon-100mm-f28-ssc https://www.mir.com.my/rb/photography/companies/canon/fdresources/fdlenses/100mm.htm https://lens-db.com/canon-fd-100mm-f28-ssc-1973/ ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/canon-fd-100mm-ssc/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/lens/canon-fd-100mm-ssc.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cblockquote\u003e\n\u003cp\u003eManual focus medium telephoto lens made for FD-mount 35mm SLRs by Canon\nstarting in 1973. Uses Canon\u0026rsquo;s Super Spectra Coating (S.S.C.). Has Canon\u0026rsquo;s\nolder-style breech-lock mount. Metal body available in black.\u003c/p\u003e\n\u003cp\u003eCanon\u0026rsquo;s FD mount came as the next logical step after the FL and R SLR mounts.\nAll three of these used breech-lock systems, although Canon later abandoned\nthis with their New FD (FDn) lenses. All FD lenses can be used on all FD\nbodies, though, and FL lenses can be used on most FD bodies as well.\u003c/p\u003e","title":"Canon FD 100mm F/2.8 S.S.C."},{"content":" Original file: download Original FUJIFILM datasheet in PDF ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/fujifilm-c200/","summary":"\u003cdiv class=\"image-container \"\u003e\n    \n    \u003cimg src=\"/images/film/fujifilm-C200.jpg\"\n         loading=\"lazy\"\n         alt=\"\"\n         title=\"\"\n         \n    /\u003e\n    \n\n    \n    \u003cdiv class=\"image-meta\"\u003e\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n            \n            \n\n            \n\n            \n        \u003cp\u003e\u003cb\u003eOriginal file\u003c/b\u003e: \u003ca href=\"https://www.fujifilm.com/us/en/consumer/film-quicksnap/film/fujifilm-200\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003edownload\u003c/a\u003e\n\u003c/p\u003e\n        \n\n        \n\n        \n\n        \n        \n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n\n\u003cdiv class=\"file\"\u003e\n    \u003cspan class=\"file-description\"\u003e\u003ca href=\"https://asset.fujifilm.com/www/us/files/2022-02/f4606a5c43dacb389a1d9eb35e0b18db/fujifilm-200-speed-film_data-sheet.pdf\"\u003eOriginal FUJIFILM datasheet in PDF\u003c/a\u003e\u003c/span\u003e\n    \u003cfigure class=\"file-image\"\u003e\n        \n        \n        \n            \u003ca href=\"/files/film/fujifilm-C200-data-sheet.pdf\"\n   target=\"_blank\"\n   referrerpolicy=\"no-referrer\"\n   rel=\"noopener nofollow\"\u003e\u003cimg src=\"/images/filetype/PDF.svg\"/\u003e\u003c/a\u003e\n\n        \n    \u003c/figure\u003e\n\u003c/div\u003e","title":"FUJIFILM 200 Color"},{"content":" Captured on «Canon A-1», 21 July 2024\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Fujifilm C200 Original file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/C-XAs2kIxTd/ ","permalink":"https://kiironoaki.gitlab.io/posts/20240721-02/","summary":"Hanging around upon the look of interesting things to photo","title":"Picturesque river bank"},{"content":" Krusta Baznīca\nLatvijas Republika, Rīga. LV-1006\nAlternative name: \u0026laquo;Rīga Evangelical Lutheran Church of the Cross\u0026raquo;\nTitle\u0026colon;\u0026nbsp;\u0026laquo;The church\u0026raquo;\nCaptured on «Canon A-1», 21 July 2024\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Fujifilm C200 Original file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/C-SsWw1IqM3/ ","permalink":"https://kiironoaki.gitlab.io/posts/20240721-01/","summary":"Rīga Evangelical Lutheran Church of the Cross","title":"«The church»"},{"content":"Everything is out of focus, but I like this photo. I haven\u0026rsquo;t shot on film for over 16 years, so I don\u0026rsquo;t think experiments and searching the style should be condemned in this case. Ç\u0026rsquo;mon, I\u0026rsquo;m still getting used to the camera :)\nTitle\u0026colon;\u0026nbsp;\u0026laquo;Bar terrace\u0026raquo;\nCaptured on «Canon A-1», 20 July 2024\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Kodak ColorPlus 200 License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/C99zMcWNJRW/ ","permalink":"https://kiironoaki.gitlab.io/posts/20240720-05/","summary":"Everything is out of focus, but I like this photo. I haven\u0026rsquo;t shot on film for over 16 years, so I don\u0026rsquo;t think experiments and searching the style should be condemned in this case. Ç\u0026rsquo;mon, I\u0026rsquo;m still getting used to the camera :)","title":"«Bar terrace»"},{"content":"If you prefer Telegram channel: t.me/aki_photos\nIf you prefer Instagram: instagram.com/kiironoaki\nLicense: CC BY-SA 4.0\n","permalink":"https://kiironoaki.gitlab.io/gallery/film-bw/","summary":"Black and white film experiments","title":"Black and white 35mm film photos"},{"content":" Title\u0026colon;\u0026nbsp;\u0026laquo;Red building\u0026raquo;\nCaptured on «Canon A-1», 20 July 2024\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Kodak ColorPlus 200 License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/C960KOPODhB/ ","permalink":"https://kiironoaki.gitlab.io/posts/20240720-04/","summary":"Experimenting with street photography","title":"«Red building»"},{"content":" Title\u0026colon;\u0026nbsp;\u0026laquo;Evening street in Rīga\u0026raquo;\nCaptured on «Canon A-1», 20 July 2024\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Kodak ColorPlus 200 License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/C94I-GdOZ1l/ ","permalink":"https://kiironoaki.gitlab.io/posts/20240720-03/","summary":"Experimenting with street photography","title":"«Evening street»"},{"content":" Title\u0026colon;\u0026nbsp;\u0026laquo;Bar lamp\u0026raquo;\nCaptured on «Canon A-1», 20 July 2024\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Kodak ColorPlus 200 License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/C92d6DUINyz/ ","permalink":"https://kiironoaki.gitlab.io/posts/20240720-02-the-lamp/","summary":"Experiments with color film","title":"«The lamp»"},{"content":"This tree will be cut and this is very sad photo for me\nSomehow, this photo remind me my old school friend. Back in those days we spent many funny hours in his garden after school\nTitle\u0026colon;\u0026nbsp;\u0026laquo;The last harvest\u0026raquo;\nCaptured on «Canon A-1», 20 July 2024\nLens: Canon FD 100mm F/2.8 S.S.C. Film: Kodak ColorPlus 200 License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/C91bg9OofDK/ ","permalink":"https://kiironoaki.gitlab.io/posts/20240720-01-the-last-harvest/","summary":"My new experiments with 35mm film camera","title":"«Apple tree: the last harvest»"},{"content":"If you prefer Telegram channel: t.me/aki_photos\nIf you prefer Instagram: instagram.com/kiironoaki\nLicense: CC BY-SA 4.0\n","permalink":"https://kiironoaki.gitlab.io/gallery/film/","summary":"I have recently returned back to my childhood interest in photographing on film camera. Here I have collected photos captured on film only","title":"35mm film photos"},{"content":" Captured on «Samsung Galaxy Z Flip 5», 3 July 2024\nOriginal file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/C89mZxDo6lg/ Captured on «Samsung Galaxy Z Flip 5», 3 July 2024\nOriginal file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/C89mZxDo6lg/ ","permalink":"https://kiironoaki.gitlab.io/posts/20240703/","summary":"Cute tiny water drops on green leaves I found after the rain. This means I need to practice my macro photography a little","title":"«After the rain»"},{"content":" See on map: https://beeneverywhere.net/user/11868?t=reg 2024: India 2023: Estonia 2023: Georgia 2018: Königsberg 2018: Lithuania 2017: Latvia 2015: Ukraine Title\u0026colon;\u0026nbsp;\u0026laquo;Europe\u0026raquo;\nTitle\u0026colon;\u0026nbsp;\u0026laquo;Asia\u0026raquo;\n","permalink":"https://kiironoaki.gitlab.io/places/","summary":"Map of visited countries","title":"Visited places"},{"content":"","permalink":"https://kiironoaki.gitlab.io/gallery/202404-india/","summary":"Photos from my work trip to India","title":"India"},{"content":" Original problem\nhttps://leetcode.com/problems/make-the-string-great/\nOriginal text Description Given a string s of lower and upper case English letters.\nA good string is a string which doesn\u0026rsquo;t have two adjacent characters s[i] and s[i + 1] where:\n0 \u0026lt;= i \u0026lt;= s.length - 2 s[i] is a lower-case letter and s[i + 1] is the same letter but in upper-case or vice-versa. To make the string good, you can choose two adjacent characters that make the string bad and remove them. You can keep doing this until the string becomes good.\nReturn the string after making it good. The answer is guaranteed to be unique under the given constraints.\nNotice that an empty string is also good.\nExample 1 Input: s = \u0026quot;leEeetcode\u0026quot;\nOutput: \u0026quot;leetcode\u0026quot;\nExplanation: In the first step, either you choose i = 1 or i = 2, both will result \u0026quot;leEeetcode\u0026quot; to be reduced to \u0026quot;leetcode\u0026quot;.\nExample 2 Input: s = \u0026quot;abBAcC\u0026quot;\nOutput: \u0026quot;\u0026quot;\nExplanation: We have many possible scenarios, and all lead to the same answer. For example:\n\u0026quot;abBAcC\u0026quot; --\u0026gt; \u0026quot;aAcC\u0026quot; --\u0026gt; \u0026quot;cC\u0026quot; --\u0026gt; \u0026quot;\u0026quot;\n\u0026quot;abBAcC\u0026quot; --\u0026gt; \u0026quot;abBA\u0026quot; --\u0026gt; \u0026quot;aA\u0026quot; --\u0026gt; \u0026quot;\u0026quot;\nExample 3 Input: s = \u0026quot;s\u0026quot;\nOutput: \u0026quot;s\u0026quot;\nConstraints 1 \u0026lt;= s.length \u0026lt;= 100 s contains only lower and upper case English letters. Solution (PHP 8.2) function makeGood(string $string): string { $charIndex = 0; while ($charIndex \u0026lt; \\strlen($string)) { $charCurrent = \\substr($string, $charIndex, length: 1); $charNext = \\substr($string, offset: $charIndex + 1, length: 1); $isCharSame = 0 === \\strcasecmp($charCurrent, $charNext); $isCaseSame = 0 === \\strcmp($charCurrent, $charNext); if ($isCharSame \u0026amp;\u0026amp; !$isCaseSame) { $string = \\substr_replace($string, \u0026#39;\u0026#39;, $charIndex, length: 2); if (0 !== $charIndex) { $charIndex--; } continue; } $charIndex++; } return $string; } Tests Input string Result Time Memory leEeetcode leetcode 65μs 1440B abBAcC 29μs 696B s s 37μs 136B lEeeetcode leetcode 63μs 1440B lEEeeeetcode leetcode 63μs 1752B 39μs 40B OS: Ubuntu WSL2 (5.15.146.1-microsoft-standard-WSL2) CPU: AMD Ryzen 7 5800X RAM: 16GB PHP 8.2.17 (cli) (built: Mar 16 2024 08:41:44) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.17, Copyright (c) Zend Technologies with Zend OPcache v8.2.17, Copyright (c), by Zend Technologies with Xdebug v3.3.1, Copyright (c) 2002-2023, by Derick Rethans memory_limit =\u0026gt; -1 xdebug.mode =\u0026gt; profile Code review (PHP 8.2) function makeGood(string $string): string { $charIndex = 0; while ($charIndex \u0026lt; \\strlen($string)) { $charCurrent = \\substr($string, $charIndex, length: 1); $charNext = \\substr($string, offset: $charIndex + 1, length: 1); - $isCharSame = 0 === \\strcasecmp($charCurrent, $charNext); - $isCaseSame = 0 === \\strcmp($charCurrent, $charNext); + // Is not same character. e.g: `ab`, `aB` =\u0026gt; `ab`, `Ba` =\u0026gt; `ba` + if (0 !== \\strcasecmp($charCurrent, $charNext)) { + $charIndex++; + + continue; + } - if ($isCharSame \u0026amp;\u0026amp; !$isCaseSame) { + // Is not same case. e.g: `aA`, `Aa` + if (0 !== \\strcmp($charCurrent, $charNext)) { $string = \\substr_replace($string, \u0026#39;\u0026#39;, $charIndex, length: 2); if (0 !== $charIndex) { $charIndex--; } continue; } $charIndex++; } return $string; } Tests Input string Result Time Memory leEeetcode leetcode 57μs 1184B abBAcC 28μs 664B s s 35μs 104B lEeeetcode leetcode 54μs 1184B lEEeeeetcode leetcode 53μs 1496B 11μs 40B ","permalink":"https://kiironoaki.gitlab.io/code/20240405_1544/","summary":"Return the string after making it good. The answer is guaranteed to be unique under the given constraints.","title":"LeetCode #1544: Make The String Great"},{"content":" Original problem\nhttps://leetcode.com/problems/longest-substring-without-repeating-characters/\nOriginal text Description Given a string s, find the length of the longest substring without repeating characters.\nExample 1 Input: s = \u0026quot;abcabcbb\u0026quot;\nOutput: 3\nExplanation: The answer is \u0026quot;abc\u0026quot;, with the length of 3.\nExample 2 Input: s = \u0026quot;bbbbb\u0026quot;\nOutput: 1\nExplanation: The answer is \u0026quot;b\u0026quot;, with the length of 1.\nExample 3 Input: s = \u0026quot;pwwkew\u0026quot;\nOutput: 3\nExplanation: The answer is \u0026quot;wke\u0026quot;, with the length of 3. Notice that the answer must be a substring, \u0026quot;pwke\u0026quot; is a subsequence and not a substring.\nConstraints 0 \u0026lt;= s.length \u0026lt;= 5 * 10⁴ s consists of English letters, digits, symbols and spaces. Solution (PHP 8.2) function getLongestSubstringLength(string $input): int { $inputLength = \\strlen($input); $buffer = []; $longestSubstringLength = 0; for ($charIndex = 0; $charIndex \u0026lt; $inputLength; $charIndex++) { $char = \\substr($input, $charIndex, length: 1); if (\\in_array($char, $buffer)) { $buffer = [$char]; continue; } $buffer[] = $char; $bufferLength = \\count($buffer); if ($bufferLength \u0026gt; $longestSubstringLength) { $longestSubstringLength = $bufferLength; } } return $longestSubstringLength; } Debug \u0026gt;\u0026gt; abcabcbb 3 abc 3 abc 1 b 1 b \u0026lt;\u0026lt; 3 \u0026gt;\u0026gt; pwwkew 2 pw 3 wke 1 w \u0026lt;\u0026lt; 3 \u0026gt;\u0026gt; Lorem ipsum dolor sit amet 10 Lorem ipsu 5 m dol 6 or sit 5 amet \u0026lt;\u0026lt; 10 Tests Input string Result Time Memory abcabcbb 3 65μs 792B bbbbb 1 60μs 576B pwwkew 3 26μs 648B Lorem ipsum dolor sit amet 10 55μs 2088B 0 13μs 56B 1 1 61μs 288B 11 1 58μs 360B OS: Ubuntu WSL2 (5.15.146.1-microsoft-standard-WSL2) CPU: AMD Ryzen 7 5800X RAM: 16GB PHP 8.2.17 (cli) (built: Mar 16 2024 08:41:44) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.17, Copyright (c) Zend Technologies with Zend OPcache v8.2.17, Copyright (c), by Zend Technologies with Xdebug v3.3.1, Copyright (c) 2002-2023, by Derick Rethans memory_limit =\u0026gt; -1 xdebug.mode =\u0026gt; profile ","permalink":"https://kiironoaki.gitlab.io/code/20240405_3/","summary":"Given a string \u003ccode\u003es\u003c/code\u003e, find the length of the \u003cstrong\u003elongest substring\u003c/strong\u003e without repeating characters.","title":"LeetCode #3: Longest Substring Without Repeating Characters"},{"content":" Original problem\nhttps://leetcode.com/problems/median-of-two-sorted-arrays/\nOriginal text Description Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.\nExample 1 Input: nums1 = [1,3], nums2 = [2]\nOutput: 2.00000\nExplanation: merged array = [1,2,3] and median is 2.\nExample 2 Input: nums1 = [1,2], nums2 = [3,4]\nOutput: 2.50000\nExplanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5.\nConstraints nums1.length == m nums2.length == n 0 \u0026lt;= m \u0026lt;= 1000 0 \u0026lt;= n \u0026lt;= 1000 1 \u0026lt;= m + n \u0026lt;= 2000 -10⁶ \u0026lt;= nums1[i], nums2[i] \u0026lt;= 10⁶ Solution (PHP 8.2) Wikipedia https://en.wikipedia.org/wiki/Median\nFor a data set x of n elements, ordered from smallest to greatest\n$$\\text{if}\\ n\\ \\text{is odd,}\\ med(x)=x_{(n+1)/2}$$\n$$\\text{if}\\ n\\ \\text{is even,}\\ med(x)=\\dfrac{x_{(n/2)}+x_{((n/2)+1)}}{2}$$\nfunction getMedian(array $listX, array $listY): float { $listMerged = \\array_merge($listX, $listY); \\sort($listMerged); $listSize = \\count($listMerged); if (0 === $listSize % 2) { $listCenter = $listSize / 2; return \\bcdiv( \\bcadd( $listMerged[$listCenter - 1], $listMerged[$listCenter], scale: 5 ), num2: 2, scale: 5 ); } else { $listCenter = ($listSize + 1) / 2; return \\floatval($listMerged[$listCenter - 1]); } } Debug [ -318927389127 -312389712367 -312379128371 3123712987.52234234 4123123541.412342 71982731892 121237681726 12192837128937 ] Tests List X List Y Result Time Memory [1,3] [2] 2 20μs 320B [1,2] [3,4] 2.5 20μs 320B [-312379128371, 4123123541.412342, -312389712367, 121237681726] [12192837128937, 3123712987.52234234, -318927389127, 71982731892] 3623418264.4673 20μs 320B [-312379128371, 4123123541.412342, -312389712367, 121237681726] [12192837128937, -318927389127, 71982731892] 4123123541.412342 20μs 320B Verification $$\\dfrac{3123712987.52234234+4123123541.412342}{2}$$\nWolframAlpha:\n$$3.62341826446734217 × 10^9$$\nOS: Ubuntu WSL2 (5.15.146.1-microsoft-standard-WSL2) CPU: AMD Ryzen 7 5800X RAM: 16GB PHP 8.2.17 (cli) (built: Mar 16 2024 08:41:44) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.17, Copyright (c) Zend Technologies with Zend OPcache v8.2.17, Copyright (c), by Zend Technologies with Xdebug v3.3.1, Copyright (c) 2002-2023, by Derick Rethans memory_limit =\u0026gt; -1 xdebug.mode =\u0026gt; profile ","permalink":"https://kiironoaki.gitlab.io/code/20240405_4/","summary":"Given two sorted arrays, return the median of the two sorted arrays.","title":"LeetCode #4: Median of Two Sorted Arrays"},{"content":" Original problem\nhttps://leetcode.com/problems/maximum-nesting-depth-of-the-parentheses/\nOriginal text Description A string is a valid parentheses string (denoted VPS) if it meets one of the following:\nIt is an empty string \u0026quot;\u0026quot;, or a single character not equal to \u0026quot;(\u0026quot; or \u0026quot;)\u0026quot;, It can be written as AB (A concatenated with B), where A and B are VPS\u0026rsquo;s, or It can be written as (A), where A is a VPS. We can similarly define the nesting depth depth(S) of any VPS S as follows:\ndepth(\u0026quot;\u0026quot;) = 0 depth(C) = 0, where C is a string with a single character not equal to \u0026quot;(\u0026quot; or \u0026quot;)\u0026quot;. depth(A + B) = max(depth(A), depth(B)), where A and B are VPS\u0026rsquo;s. depth(\u0026quot;(\u0026quot; + A + \u0026quot;)\u0026quot;) = 1 + depth(A), where A is a VPS. For example, \u0026quot;\u0026quot;, \u0026quot;()()\u0026quot;, and \u0026quot;()(()())\u0026quot; are VPS\u0026rsquo;s (with nesting depths 0, 1, and 2), and \u0026quot;)(\u0026quot; and \u0026quot;(()\u0026quot; are not VPS\u0026rsquo;s.\nGiven a VPS represented as string s, return the nesting depth of s.\nExample 1 Input: s = \u0026quot;(1+(2*3)+((8)/4))+1\u0026quot;\nOutput: 3\nExplanation: Digit 8 is inside of 3 nested parentheses in the string.\nExample 2 Input: s = \u0026quot;(1)+((2))+(((3)))\u0026quot;\nOutput: 3\nConstraints 1 \u0026lt;= s.length \u0026lt;= 100 s consists of digits 0-9 and characters '+', '-', '*', '/', '(', and ')'. It is guaranteed that parentheses expression s is a VPS. Solution (PHP 8.2) Notes /** * @throws \\Exception */ function getNestingDepthMax(string $input): int { $inputLength = \\strlen($input); $nestingDepth = 0; $nestingDepthMax = 0; for ($charIndex = 0; $charIndex \u0026lt; $inputLength; $charIndex++) { $char = \\substr($input, $charIndex, length: 1); if (0 === \\strcmp(string1: \u0026#39;(\u0026#39;, string2: $char)) { $nestingDepth++; } if ($nestingDepth \u0026gt; $nestingDepthMax) { $nestingDepthMax = $nestingDepth; } if (0 === \\strcmp(string1: \u0026#39;)\u0026#39;, string2: $char)) { $nestingDepth--; if ($nestingDepth \u0026lt; 0) { throw new \\Exception(message: \u0026#39;Invalid string provided\u0026#39;); } } } if (0 !== $nestingDepth) { throw new \\Exception(message: \u0026#39;Invalid string provided\u0026#39;); } return $nestingDepthMax; } Tests Input string Result Time Memory (1+(2*3)+((8)/4))+1 3 77μs 1824B (1+(2*3)+((8)/(16)))+1 3 69μs 2112B (1)+((2))+(((3))) 3 77μs 1824B 0 31μs 80B ()() 1 52μs 384B ()(()()) 2 61μs 768B A 0 40μs 96B AB 0 46μs 192B A(B) 1 69μs 384B A(((B)()((C())))) 5 61μs 1632B )( \\Exception (() \\Exception OS: Ubuntu WSL2 (5.15.146.1-microsoft-standard-WSL2) CPU: AMD Ryzen 7 5800X RAM: 16GB PHP 8.2.17 (cli) (built: Mar 16 2024 08:41:44) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.17, Copyright (c) Zend Technologies with Zend OPcache v8.2.17, Copyright (c), by Zend Technologies with Xdebug v3.3.1, Copyright (c) 2002-2023, by Derick Rethans memory_limit =\u0026gt; -1 xdebug.mode =\u0026gt; profile ","permalink":"https://kiironoaki.gitlab.io/code/20240404_1614/","summary":"Given a valid parentheses string represented as string \u003ccode\u003es\u003c/code\u003e, return the nesting depth of \u003ccode\u003es\u003c/code\u003e.","title":"LeetCode #1614: Maximum Nesting Depth of the Parentheses"},{"content":" Original problem\nhttps://leetcode.com/problems/add-two-numbers/\nOriginal text Description You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list.\nYou may assume the two numbers do not contain any leading zero, except the number 0 itself.\nExample 1 Input: l1 = [2,4,3], l2 = [5,6,4]\nOutput: [7,0,8]\nExplanation: 342 + 465 = 807\nExample 2 Input: l1 = [0], l2 = [0]\nOutput: [0]\nExample 3 Input: l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]\nOutput: [8,9,9,9,0,0,0,1]\nConstraints The number of nodes in each linked list is in the range [1, 100]. 0 \u0026lt;= Node.val \u0026lt;= 9 It is guaranteed that the list represents a number that does not have leading zeros. Additional information provided /** * Definition for a singly-linked list. * class ListNode { * public $val = 0; * public $next = null; * function __construct($val = 0, $next = null) { * $this-\u0026gt;val = $val; * $this-\u0026gt;next = $next; * } * } */ /** * @param ListNode $l1 * @param ListNode $l2 * @return ListNode */ Solution (PHP 8.2) Notes class ListNode { public function __construct( public int $value = 0, public ?self $nextNode = null ) {} } ListNodeAdder::add( ListNodeFactory::arrayToChain([9,9,9,9,9,9,9]), ListNodeFactory::arrayToChain([9,9,9,9]), ); class ListNodeAdder { protected int $buffer = 0; public static function add(?ListNode $x, ?ListNode $y): ListNode { return (new self())-\u0026gt;addRecursive($x, $y); } protected function addRecursive( ?ListNode $x, ?ListNode $y, ?ListNode $result = null ): ?ListNode { if (null === $x \u0026amp;\u0026amp; null === $y) { if ($this-\u0026gt;buffer \u0026gt; 0) { ListNodeFactory::enchain($result, $this-\u0026gt;buffer); } return $result; } ListNodeFactory::enchain($result, $this-\u0026gt;calculate( static::getNodeValue($x), static::getNodeValue($y) )); return $this-\u0026gt;addRecursive( // ↻ Recursion! static::getNextNode($x), static::getNextNode($y), $result // Passed as symbolic link ); } protected function calculate(int $x, int $y): int { $result = $x + $y; if (0 !== $this-\u0026gt;buffer) { $result += $this-\u0026gt;buffer; $this-\u0026gt;buffer = 0; } if ($result \u0026gt;= 10) { $result -= 10; $this-\u0026gt;buffer = 1; } return $result; } protected static function getNodeValue(?ListNode $listNode): int { if ($listNode instanceof ListNode) { return $listNode-\u0026gt;value; } return 0; } protected static function getNextNode(?ListNode $listNode): ?ListNode { if ($listNode instanceof ListNode) { return $listNode-\u0026gt;nextNode; } return null; } } class ListNodeFactory { public static function arrayToChain(array $items): ?ListNode { $list = null; foreach ($items as $item) { static::enchain($list, $item); } return $list; } public static function enchain(?ListNode \u0026amp;$listNode, int $value): void { if (null === $listNode) { $listNode = new ListNode($value); return; } if ($nextNode = $listNode-\u0026gt;nextNode) { static::enchain( // ↻ Recursion! $nextNode, // Passed as symbolic link $value ); return; } $listNode-\u0026gt;nextNode = new ListNode($value); } } Tests List X List Y Result Time Memory [2,4,3] [5,6,4] [7,0,8] 482μs 1112B [0] [0] [0] 482μs 1112B [9,9,9,9,9,9,9] [9,9,9,9] [8,9,9,9,0,0,0,1] 205μs 2192B OS: Ubuntu WSL2 (5.15.146.1-microsoft-standard-WSL2) CPU: AMD Ryzen 7 5800X RAM: 16GB PHP 8.2.17 (cli) (built: Mar 16 2024 08:41:44) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.17, Copyright (c) Zend Technologies with Zend OPcache v8.2.17, Copyright (c), by Zend Technologies with Xdebug v3.3.1, Copyright (c) 2002-2023, by Derick Rethans memory_limit =\u0026gt; -1 xdebug.mode =\u0026gt; profile ","permalink":"https://kiironoaki.gitlab.io/code/20240401_leetcode_add_two_numbers/","summary":"You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list","title":"LeetCode #2: Add Two Numbers"},{"content":"In my code you can often see me calling global functions using a backslash in front of them: \\array_map, \\array_filter, \\sort and so on. This is not a very common practice and naturally raises eyebrows. Every time I get into a new team or when a new employee joins the team, I get asked the same question for years: \u0026ldquo;why do you use prefixes for global functions?\u0026rdquo;\nTL;DR I do this for two reasons: it is self-discipline, and it really speeds up the code a little Micro-optimization? Are you serious?! It\u0026rsquo;s nonsense! This pointless optimization doesn\u0026rsquo;t save resources in more than a couple of nanoseconds!\nYes, I\u0026rsquo;ve heard comments like this before, please don\u0026rsquo;t bother writing another mail like that to me - I know what I\u0026rsquo;m doing\nLet\u0026rsquo;s start with the so-called \u0026ldquo;optimization\u0026rdquo;. In fact, it is absolutely invisible in very small scripts that can be described in a couple of lines of code. Even if we write a couple of hundred or thousand of them, it really won\u0026rsquo;t affect anything at all - the time and amount of memory consumed will remain at the same level. I don’t want to say that 100% of the time I write exceptional, perfect and cleanest code in the world, so I use even so small optimization. Nonsense! Of course not - I often compromise with myself and write dirty code quickly if only I urgently need to fix something or test some concept. This optimization only works where large computing power is used, where recursions occurs, and where memory needs to be accessed very often\nFor example, (I can\u0026rsquo;t tell you all the details, but\u0026hellip;) several projects, which I\u0026rsquo;ve been working on for a long time, contains sections of very old code (10+ years), which constantly interacting with huge amounts of data. Their files contain several hundreds and even thousands of code lines each. There are all kinds of database connections, filtration, recursions and many more scary and difficult things. Does using global namespace helps me to optimise the code? Well, I would lie if I tell you \u0026ldquo;yes, for sure\u0026rdquo;. Prefix \u0026ndash; is my old habit, so I often type it unconsciously, its impact less than 1% of my recent optimisations:\n-Before: 47 processes finished in 5.694s ( ~8.25/s) + After: 909 processes finished in 0.72s (~1262.5 /s) (x153) -Before: 2000 processes finished in 446.369s (7\u0026#39;26\u0026#34;) ( ~4.5/s) + After: 6000 processes finished in 534.663s (8\u0026#39;54\u0026#34;) (~11.2/s) (+248%) -Before: 34 processes finished in 10min (3.4/min) + After: 72 processes finished in 10min (7.2/min) (+211%) Please note, that all three of these examples are different modules that perform different numbers and volumes of tasks, optimized at different times, in different ways. Then why did I show you them here? Just to brag (:\nPHP inside Okay, jokes aside, let\u0026rsquo;s finally get to the point. How does PHP understand that this is a global function and not a user one? For example, if we write the following code, then the preprocessor does not care at all whether we put a global prefix or not:\necho abs(-3.14); number of ops: 5 compiled vars: none line #* E I O op fetch ext return operands -------------------------------------------------------------------------------- 3 0 E \u0026gt; INIT_FCALL \u0026#39;abs\u0026#39; 1 SEND_VAL -3.14 2 DO_ICALL $0 3 ECHO $0 4 \u0026gt; RETURN 1 Here we can safely say that specifying the scope is redundant and useless. What if we add a scope to our code?\nnamespace App\\Test; echo abs(-3.14); Great! Exactly what I wanted to show. In this case, the interpreter trying to find the called function:\nnumber of ops: 5 compiled vars: none line #* E I O op fetch ext return operands -------------------------------------------------------------------------------- 5 0 E \u0026gt; INIT_NS_FCALL_BY_NAME \u0026#39;App\\Test\\abs\u0026#39; 1 SEND_VAL_EX -3.14 2 DO_FCALL 0 $0 3 ECHO $0 4 \u0026gt; RETURN 1 So the interpreter performs the following flow:\nEvery time we use a function without specifying what scope it is in, the interpreter uses the INIT_NS_FCALL_BY_NAME operation instead of INIT_FCALL and is forced to perform additional unnecessary operations\nAnd yet, why is this? Some developers also recommend calling functions from the global scope, others claim it has a big impact on performance. I don\u0026rsquo;t know if this has any significant effect on modern versions of PHP older than version 7 (it\u0026rsquo;s very difficult to measure), but I like to think that even with all the ugliness of the legacy code, my fresh code is at least a nanosecond more efficient. I have always admired the pioneers of our profession who launched people into space on computers that operated in kilobytes, rather than gigabytes, as is the case today. And I\u0026rsquo;m very sorry that we have forgotten how to do this skill today. Now it’s easier for us to buy additional RAM for the server than spending time on optimization\nOkay, but this still doesn\u0026rsquo;t give us anything! We will not get any performance gain if the processor performs a couple of additional operations few times. Business will not wait until you play enough with optimization\nYes this is true. The reason I still do this, despite the fact that PHP has long since acquired JIT and OPcache, is self-discipline. It doesn\u0026rsquo;t take very long to write another backslash while I\u0026rsquo;m writing the code. The explanation for this habit is very simple: I always think about the fact that other people will read my code and I always try to write the code as clean as possible, refactoring the previous one if possible. For me, this is as symbolic as the dent in paper that a Canadian engineer\u0026rsquo;s ring leaves. The old code I\u0026rsquo;m working with, sometimes throws up surprises like overridden global methods. Thus, I want me and my colleagues to understand the purpose of the function \u0026ldquo;a priori\u0026rdquo;, without checking its implementation\nnamespace App\\Test; function pi() { return 2.718281828459045; } echo pi(); // 2.718281828459045 echo PHP_EOL; echo \\pi(); // 3.14159265358979 Finding entry points Branch analysis from position: 0 1 jumps found. (Code = 62) Position 1 = -2 function name: (null) number of ops: 9 compiled vars: none line #* E I O op fetch ext return operands -------------------------------------------------------------------------------- 9 0 E \u0026gt; INIT_NS_FCALL_BY_NAME \u0026#39;App\\Test\\pi\u0026#39; 1 DO_FCALL 0 $0 2 ECHO $0 10 3 FETCH_CONSTANT ~1 \u0026#39;App\\Test\\PHP_EOL\u0026#39; 4 ECHO ~1 11 5 INIT_FCALL \u0026#39;pi\u0026#39; 6 DO_ICALL $2 7 ECHO $2 8 \u0026gt; RETURN 1 Function app\\test\\pi: Finding entry points Branch analysis from position: 0 1 jumps found. (Code = 62) Position 1 = -2 function name: App\\Test\\pi number of ops: 2 compiled vars: none line #* E I O op fetch ext return operands -------------------------------------------------------------------------------- 6 0 E \u0026gt; \u0026gt; RETURN 2.71828 7 1* \u0026gt; RETURN null ","permalink":"https://kiironoaki.gitlab.io/posts/20240401/","summary":"A detailed answer to a popular question that I get asked every time my code is analyzed by co-workers","title":"Prefixes for global functions? Why?"},{"content":" Original problem\nhttps://leetcode.com/problems/two-sum/\nOriginal text Description Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.\nYou may assume that each input would have exactly one solution, and you may not use the same element twice.\nYou can return the answer in any order.\nExample 1 Input: nums = [2,7,11,15], target = 9\nOutput: [0,1]\nExplanation: Because nums[0] + nums[1] == 9, we return [0, 1]\nExample 2 Input: nums = [3,2,4], target = 6\nOutput: [1,2]\nExample 3 Input: nums = [3,3], target = 6\nOutput: [0,1]\nConstraints 2 \u0026lt;= nums.length \u0026lt;= 10⁴ -10⁹ \u0026lt;= nums[i] \u0026lt;= 10⁹ -10⁹ \u0026lt;= target \u0026lt;= 10⁹ Only one valid answer exists Algorithm complexity: less than O(N²) Solution (PHP 8.2) /** * @param int[] $numbers * @param int $target * * @return int[] * * @throws \\Exception */ function getAddendIndexList(array $numbers, int $target): array { $indexes = []; foreach ($numbers as $index =\u0026gt; $number) { $difference = $target - $number; if (\\array_key_exists($difference, $indexes)) { return [$indexes[$difference], $index]; } $indexes[$number] = $index; } throw new \\Exception(\u0026#39;No addend numbers found\u0026#39;); } Tests Target Numbers Result Time Memory 9 [2,7,11,15] [0,1] 15μs 432B 6 [3,2,4] [1,2] 15μs 432B 6 [3,3] [0,1] 17μs 432B 0 [8, 18, 36, 15, -3, 27, 3] [4,6] 17μs 432B -9 [-6, 13, -2, 15, -3, 27, -3] [0,4] 18μs 592B OS: Ubuntu WSL2 (5.15.146.1-microsoft-standard-WSL2) CPU: AMD Ryzen 7 5800X RAM: 16GB PHP 8.2.17 (cli) (built: Mar 16 2024 08:41:44) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.17, Copyright (c) Zend Technologies with Zend OPcache v8.2.17, Copyright (c), by Zend Technologies with Xdebug v3.3.1, Copyright (c) 2002-2023, by Derick Rethans memory_limit =\u0026gt; -1 xdebug.mode =\u0026gt; profile ","permalink":"https://kiironoaki.gitlab.io/code/20240331_leetcode_two_sum/","summary":"Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.","title":"LeetCode #1: Two Sum"},{"content":"Introduction I\u0026rsquo;ve been looking towards ortholinear keyboards for a very long time now. I even became a regular on the subreddit of mechanical keyboards (/r/MechanicalKeyboards) in hope I\u0026rsquo;ll found one which would correspond all my requirements\nI\u0026rsquo;ve always been sure that the staggered keyboard we are all familiar with, is an anachronism left over from the times when people used typewriters. Despite the genius engineering decision was justified by the fact of keys\u0026rsquo; levers arrangement, the keys displacement migrated to first computer keyboards free from mechanical weakness\nI would call myself an opponent of anachronisms and believe that the world should constantly be in the process of modernizing all aspects of life as much as possible. The world should always follow the path of progress, without stopping for a break for stagnation\nOnce I found this Gizmo keyboard. I very liked it design and subscribed to MyKeyboard.EU notifications to buy it when it would be in stock. Unfortunately, I\u0026rsquo;m very disappointed in it when it finally came to me\nTitle\u0026colon;\u0026nbsp;\u0026laquo;Gizmo Engineering GK6 Imperial Panda\u0026raquo;\nCaptured on «Samsung Galaxy A54»\nLicense\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/C08BnOAIjFV/ What I liked Firstly, before I start blaming this keyboard, let\u0026rsquo;s start from positive side:\nGreat design. I like it very much Huge aluminium body. It weights 810 grams! High quality key caps. Plus extra key caps in the box Quality packaging. I like this soft material that holds unused key caps Beautiful \u0026ldquo;digital\u0026rdquo; font on keys face. Looks like dot matrix print Separated space bar keys. I configured one for space, the second for tab Programmable chip. Unlike my Glorious™ GMMK2, I can modify firmware in the way I like. (Glorious Software is terrible and using QMK firmware™ with GMMK2 is not comfortable enough) Disappointment It came with no switches! Are you kidding me? I should pay a lot of money + VAT, for keyboard and pay in additional for a set of switches? It\u0026rsquo;s outrageous! Okay, this keyboard was at a discount, but imagine I would paid full price. DIY in marketing bullshit nowadays means \u0026ldquo;we save money on customer\u0026rdquo; Okay, never mind \u0026ndash; I bought switches Gateron Red by Glorious™ for it It\u0026rsquo;s damn loud! Between keyboard plate under switches and PCB doesn\u0026rsquo;t exist any damper to prevent loud clicks. Also, it doesn\u0026rsquo;t exist between the PCB and aluminium body bottom, so every click on key cap sounds like I\u0026rsquo;m using a jackhammer USB port is on right side of keyboard. Well, it\u0026rsquo;s my fault, that I didn\u0026rsquo;t see it before I bought it. I am right-handed, so I don\u0026rsquo;t like very much, when there are some wires between my mouse and keyboard. It isn\u0026rsquo;t comfortable \u0026ndash; I\u0026rsquo;m constantly touching the wire, when I\u0026rsquo;m switching from mouse to keyboard, in addition it looks ugly with my coiled wire Missing legs. Probably, it\u0026rsquo;s my fault too, that I didn\u0026rsquo;t see it before buying it or simply didn\u0026rsquo;t pay attention to this (as it turned out) important detail. The keys are on the same level, so after a long time of typing, wrist pain begins to appear. So it requires special wrist rest. Additional buy\u0026hellip; OMG! Nasty high-pitched squeak (╯°□°）╯︵ ┻━┻ !!! You know, I\u0026rsquo;m not old enough to ignore the high frequency squeak from some capacitor of the LED controller. I\u0026rsquo;m not hardware engineer and I understand only theory of this, but when I disabled LED in firmware, squeak immediately disparaged. Such big money for the keyboard with disabled LED backlight, because of cheap PCB\u0026hellip; Nice! ¯\\_(ツ)_/¯ Now I’m sure that I should have listened to my wife and return this piece of scrap to the manufacturer to got my money back, but I, as usual, was immersed in work and the time for a return has passed. Anyway, I tried to fix its loudness \u0026ndash; took out PCB from case and installed under it a list of polypropylene carved from GPU shipping case. It helped a little, but I think I have to buy some another good material for it, because I don\u0026rsquo;t want to pay additional money for sound dampener they sold separately. What a cheek! My current keyboard (Glorious™ GMMK2) cost me cheaper than this keyboard, and it out of the box has legs, switches, built-in sound dampener and noise-less LED backlight\nUsage experience The main problem for me ended up in lack of keys. This keyboard has only 66±2 keys and for me, as a programmer, is not enough. Many symbols I had to hide to raise and lower layers, so it was very hard to work in the usual way. I constantly missed, I couldn\u0026rsquo;t press the combinations correctly. I even tried to play League of Legends with this keyboard, and it was really hard being out of habit\nTitle\u0026colon;\u0026nbsp;\u0026laquo;Typing speed comparison (words per minute)\u0026raquo;\nOriginal file: PNG (607 KiB) Title\u0026colon;\u0026nbsp;\u0026laquo;Typing accuracy comparison (percents)\u0026raquo;\nOriginal file: PNG (606 KiB) All these charts are based on data from MonkeyType. All tests were carried out on PHP 100 words typing, with symbols and punctuations. The biggest problem came to me when I decided to switch back: I wasn\u0026rsquo;t experienced enough for fast blind typing on ortholinear keyboard, but in the same time my hands have managed to wean themselves from staggered keyboard, so it was really difficult to get used back to my default keyboard. Yeah, it was a hard week\u0026hellip;\nTitle\u0026colon;\u0026nbsp;\u0026laquo;Ortholinear keyboard layout\u0026raquo;\nOriginal file: PNG (49 KiB) If you\u0026rsquo;re interested in this keyboard or this layout for some reason (even after everything I wrote above? o_0), this is repository with all necessary files and instructions you may need: gitlab.com/kiironoaki/keyboard\nWhat\u0026rsquo;s next? Despite my failure in non-staggered keyboard experience, I\u0026rsquo;m looking forward to buy split one: The Voyager keyboard by ZSA:\nURL:\u0026nbsp;https://www.zsa.io/voyager Yes, another one non-standard keyboard, I will struggle with :D\nI like the idea of split keyboard \u0026ndash; I even thought to make one based on Iris PCB and I really think, that Voyager would be the last one I\u0026rsquo;ll buy in collection (of 3 of them, LOL!), because I have an idea to create my own custom ortholinear keyboard. Of course, I will practice with my GK6, but I want more keys, meanwhile keyboard developers cuts them even more\nThis is very early sketch of what I want to build:\nTitle\u0026colon;\u0026nbsp;\u0026laquo;Ortholinear keyboard prototype (v0.2.3) with different layouts\u0026raquo;\nOriginal file: PNG (163 KiB) ","permalink":"https://kiironoaki.gitlab.io/posts/20240317-gk6/","summary":"Review of my very first ortholinear keyboard «Gizmo Engineering GK6 Imperial Panda», after almost 4 months of using","title":"Gizmo ortholinear keyboard «GK6»"},{"content":"During PaperMod layouts refactoring I found many non-obvious things for me as PHP developer, like {{ if eq \u0026quot;x\u0026quot; \u0026quot;y\u0026quot; }}, {{ if or $x $y }}, e.t.c. Well, o’k, it strange, but I can accept it, because there is logic in it, but I was not prepared for what I would found – I needed to format a simple date. In PHP, using Twig I would use standard date library and format the way I need it:\n{{ post.published_at | date(\u0026#34;j F Y H:i\u0026#34;) }} {# 14 March 2024 17:32 #} Same for plain PHP:\necho date_format(date_create(\u0026#39;2024-03-14 17:32\u0026#39;), \u0026#39;j F Y H:i\u0026#39;); // 14 March 2024 17:32 Now, let\u0026rsquo;s look at this implementation in Go:\nfmt.Println(time.Now().Format(\u0026#34;2 January 2006 (Monday) 15:04\u0026#34;)) Firstly I thought it\u0026rsquo;s a date example Hugo provides. Then I followed the reference to Go official documentation and there I found the same date. Hmm\u0026hellip; Okay\u0026hellip; Maybe Hugo just reused example from documentation. Let\u0026rsquo;s investigate StackOverflow:\nLicense\u0026colon;\u0026nbsp;StackOverflow terms of service Only after that I realized, that This real date is part of Go source code! WTF?!! I checked official Go repository and this is what it contains:\n101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 const ( Layout = \u0026#34;01/02 03:04:05PM \u0026#39;06 -0700\u0026#34; // The reference time, in numerical order. ANSIC = \u0026#34;Mon Jan _2 15:04:05 2006\u0026#34; UnixDate = \u0026#34;Mon Jan _2 15:04:05 MST 2006\u0026#34; RubyDate = \u0026#34;Mon Jan 02 15:04:05 -0700 2006\u0026#34; RFC822 = \u0026#34;02 Jan 06 15:04 MST\u0026#34; RFC822Z = \u0026#34;02 Jan 06 15:04 -0700\u0026#34; // RFC822 with numeric zone RFC850 = \u0026#34;Monday, 02-Jan-06 15:04:05 MST\u0026#34; RFC1123 = \u0026#34;Mon, 02 Jan 2006 15:04:05 MST\u0026#34; RFC1123Z = \u0026#34;Mon, 02 Jan 2006 15:04:05 -0700\u0026#34; // RFC1123 with numeric zone RFC3339 = \u0026#34;2006-01-02T15:04:05Z07:00\u0026#34; RFC3339Nano = \u0026#34;2006-01-02T15:04:05.999999999Z07:00\u0026#34; Kitchen = \u0026#34;3:04PM\u0026#34; // Handy time stamps. Stamp = \u0026#34;Jan _2 15:04:05\u0026#34; StampMilli = \u0026#34;Jan _2 15:04:05.000\u0026#34; StampMicro = \u0026#34;Jan _2 15:04:05.000000\u0026#34; StampNano = \u0026#34;Jan _2 15:04:05.000000000\u0026#34; DateTime = \u0026#34;2006-01-02 15:04:05\u0026#34; DateOnly = \u0026#34;2006-01-02\u0026#34; TimeOnly = \u0026#34;15:04:05\u0026#34; ) Language:Go Repository path: src/time/format.go Commit: c007ce8 So developers of Go language decided, that this date is more understandable for Go developers than Y-m-d H:i:s? Why? Mnemonics like these, used in PHP, is similar to used by Java, .Net, and many languages, because it is used even in ISO standard as example\nWell, You know, Okay, I can understand even this, but why Go developers decided to use exactly 1 2 3:4:5 2006 -7 order? Well, it\u0026rsquo;s the most funny part: it\u0026rsquo;s american date format January 2 03:04:05 PM 2006 UTC-7. Ah, yes, the crappiest date format in the world is a language standard. How obvious\u0026hellip; I will never understand why americans are constantly trying to force everybody to use what is convenient for them personally, instead of using world standards\n","permalink":"https://kiironoaki.gitlab.io/posts/20240314/","summary":"The real date as a format? Really? My brain is boiling at how unintuitive and unobvious this is implemented","title":"WTF with date format in Go?!"},{"content":"Before we get to the point, I want to assure you that my blog won\u0026rsquo;t turn into reposts. I just want to share this photo, because for some reason it wasn\u0026rsquo;t linked to it\u0026rsquo;s author on Tumblr (I won\u0026rsquo;t leave the link to that post, it doesn\u0026rsquo;t deserve it. It\u0026rsquo;s good that we live in a time when there is Google Lens, which helped me to found the author) and I want to fix this injustice: I suggest you to visit Shayd\u0026rsquo;s blog and website \u0026ndash; he has fascinating collection of photos\nAuthor: Shayd Johnson License\u0026colon;\u0026nbsp;Instagram terms of use Instagram:\u0026nbsp;https://www.instagram.com/aerocrafted/p/CfxTby3v301/ ","permalink":"https://kiironoaki.gitlab.io/posts/20240313-shayd_johnson/","summary":"I want to assure you that my blog won’t turn into reposts. I just want to share this photo, because for some reason it wasn\u0026rsquo;t linked to it’s author on Tumblr and I want to fix this injustice","title":"This magnificent photo I found on Tumblr"},{"content":"Introduction As I told before, in my CV, since 2017 I delved into BackEnd development and didn\u0026rsquo;t work with FrontEnd technologies for a while. I was always afraid that I would never have time to catch up with the knowledge that I had ignored for so long. Hugo gave me the opportunity to not worry about such things when I wanted to start blogging. Thanks to Aditya Telange it looks beautiful with PaperMod. It fast and easy to understand\nI told already that I wanted to study Go language, but due to work I had no time for it. Now, with this blog I\u0026rsquo;m investigating how Go and Hugo works. I don\u0026rsquo;t know if shortcodes and templating are belong to Go development, but it\u0026rsquo;s supper intuitive and easy to understand. I\u0026rsquo;m already modified a lot in PaperMod for this blog, and it\u0026rsquo;s fantastic how easy it is\nFour years ago I gained the belief that in the world of Electron and other huge technologies that doesn\u0026rsquo;t care about end user resources, there should be lightweight static HTML web-sites that not overloaded with tons of useless JS and animations. Simple and clear old-school pages still works great. For me, as BackEnd developer they are more preferred than mind-blown huge few MiB web pages, that loads several minutes and full of various animations. It\u0026rsquo;s great that their developers practice their programming skills so well and have achieved such amazing results, but personally it turns me off\nInspired on nikic\u0026rsquo;s blog, Robert Martin\u0026rsquo;s one and few more (eklitzke, simplifier, stitcher) I desired to write a blog too, but all my attempts in Twitter or Blogger have failed before so this was supposed to be my little hobby where I\u0026rsquo;m telling about my thoughts and another hobbies. Yes, currently I don\u0026rsquo;t have many things to write about, but I look ahead to travel, capture photos and writing about it. I thought to make something simple like simplifier\u0026rsquo;s blog and have style as IETF RFC (because I very like their plain design), but I also wanted to write it in Markdown only\nSphinx Firstly, I found Sphinx, used MyST-Parser for Markdown and sphinx-material. In one evening I wrote few pages of Markdown, added simple Gitlab CI config and voilà, I have a blog:\nimage: sphinxdoc/sphinx:latest pages: stage: deploy script: - apt-get -qq update \u0026amp;\u0026amp; apt-get -qqy install git make # Markdown parser - pip3 install myst-parser # Material design theme - pip3 install git+https://github.com/bashtage/sphinx-material.git - make compile artifacts: paths: - public only: - master Repository path: .gitlab-ci.yml Hugo The initial idea was good, but now I can say that it looks ugly. The PaperMod provides the beautiful and simple style while Material design is a bunch of motley elements somehow put together without solid idea. Also, I used wrong tool \u0026ndash; Sphinx doesn\u0026rsquo;t provide tags, categories and other tools out of the box. Of course, I may write it by myself, but I don\u0026rsquo;t like Python language, so I didn\u0026rsquo;t want to do it\nThen I found Hugo, and it corresponded to all my needs and even more. Now I can easily extend my blog with custom shortcodes, layouts and styles, without creating a fork of original theme. Now I can do in my blog whatever I want and it\u0026rsquo;s awesome! For example, I added a completely new layout for photos, added few shortcodes to add a little meta in a nice view for photos, modified blog posts list, and it\u0026rsquo;s still approximately the 4-5% of possibilities that Hugo provides! This is how a shortcode looks as code:\n\u0026lt;div class=\u0026#34;image-container\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;image-meta\u0026#34;\u0026gt; \u0026lt;p\u0026gt;{{ (i18n \u0026#34;image_title\u0026#34; | default \u0026#34;Title\u0026#34;) }}\u0026amp;colon;\u0026amp;nbsp;\u0026amp;laquo;{{ .Inner }}\u0026amp;raquo;\u0026lt;/p\u0026gt; {{ if or .Params.camera .Params.date }} {{ $photoMeta := (i18n \u0026#34;image_captured\u0026#34; | default \u0026#34;Captured on\u0026#34;) }} {{ if .Params.camera }} {{ $photoMeta = printf \u0026#34;%s on %s\u0026#34; $photoMeta .Params.camera }} {{ end }} {{ if .Params.date }} {{ $photoMeta = printf \u0026#34;%s on %s\u0026#34; $photoMeta (time.Format \u0026#34;:date_long\u0026#34; .Params.date) }} {{ end }} \u0026lt;p\u0026gt;{{ $photoMeta }}\u0026lt;/p\u0026gt; {{ end }} {{ if .Params.originalPath }} {{ $originalText := (i18n \u0026#34;download\u0026#34;) }} {{ if .Params.originalType }} {{ $originalText = .Params.originalType }} {{ if .Params.originalSize }} {{ $originalText = printf \u0026#34;%s (%s)\u0026#34; .Params.originalType .Params.originalSize }} {{ end }} {{ end }} \u0026lt;p\u0026gt;{{ i18n \u0026#34;image_original\u0026#34; | default \u0026#34;Original file\u0026#34; }}\u0026amp;colon;\u0026amp;nbsp;{{ partial \u0026#34;link\u0026#34; (dict \u0026#34;url\u0026#34; .Params.originalPath \u0026#34;text\u0026#34; $originalText ) }}\u0026lt;/p\u0026gt; {{ end }} {{ $license := .Params.license }} {{ if $license }} {{ $licenseAnchor := partial \u0026#34;link\u0026#34; (dict \u0026#34;url\u0026#34; \u0026#34;https://creativecommons.org/licenses/by-sa/4.0/\u0026#34; \u0026#34;text\u0026#34; \u0026#34;CC BY-SA v4.0\u0026#34; ) }} {{- /* TODO: Add more licences in future if needed */ -}} \u0026lt;p\u0026gt;{{ i18n \u0026#34;image_license\u0026#34; | default \u0026#34;License\u0026#34; }}\u0026amp;colon;\u0026amp;nbsp;{{ $licenseAnchor | safeHTML }}\u0026lt;/p\u0026gt; {{ end }} {{ $instagram := .Params.instagram }} {{ if $instagram }} \u0026lt;p\u0026gt;Instagram:\u0026amp;nbsp;{{ partial \u0026#34;link\u0026#34; (dict \u0026#34;url\u0026#34; $instagram \u0026#34;text\u0026#34; $instagram) }}\u0026lt;/p\u0026gt; {{ end }} \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; Repository path: layouts/shortcodes/imagemeta.html {{ \u0026lt; imagemeta camera=\u0026#34;Samsung Galaxy A54\u0026#34; date=\u0026#34;2024-01-06\u0026#34; license=\u0026#34;cc-by-sa-4.0\u0026#34; instagram=\u0026#34;https://www.instagram.com/p/C1wqalHIhdi/\u0026#34; \u0026gt; }}Small river in the winter forest{{ \u0026lt; /imagemeta \u0026gt; }} Repository path: content/posts/20240106.md \u0026hellip;and this is how it renders:\nTitle\u0026colon;\u0026nbsp;\u0026laquo;Small river in the winter forest\u0026raquo;\nCaptured on «Samsung Galaxy A54», 6 January 2024\nLicense\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/C1wqalHIhdi/ Wonderful! I like that it works like familiar to me Twig. It looks as if backend developer tries to make some frontend :D\nP.S. In my research I found blog of Jesse Wei I would like to recommend it for everybody interested in Hugo and PaperMod website customisation\n","permalink":"https://kiironoaki.gitlab.io/posts/20240312-hugo/","summary":"Recently I migrated this blog from Sphinx to Hugo and I\u0026rsquo;m really enjoying to customize it","title":"Blog on Hugo"},{"content":"Since the previous photo engaged many people in Bluesky Social network, I want to share another one, the perfect photo I ever captured (IMO )\nUnfortunately, I have no raw source of this photo and forced to share you Instagram compressed version :(\nCaptured on «Nokia 6.1», 9 September 2022\nOriginal file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/CiS00dGsRV2/ ","permalink":"https://kiironoaki.gitlab.io/posts/20240309/","summary":"Since the previous photo engaged many people in Bluesky Social network, I want to share another one. The perfect photo I ever captured (IMO)","title":"«Evening Rīga»"},{"content":" Captured on «Samsung Galaxy A54», 6 August 2023\nOriginal file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/CvnekuRM1w0/ Lately I had discussion about foggy window photo with a person who taught me to take pictures, and they decided that I have a talent and my photos are better now than their. Of course, I\u0026rsquo;m glad to hear it, but I strongly disagree with this statement, because there are no standard of good photo and nobody can tell that one photo is better than another, because every person takes it based on their own point of view and every person captures in the photo their own feelings. In occasion, I may casually walk around Tbilisi and capture quick photos of everything I see (one day I wish to publish a story in this blog about it), but also I can spend many times in searching right place and right time to visit it at 6 o\u0026rsquo;clock in the morning for capturing dozens of photographs just to edit it in Adobe Lightroom to change them beyond recognition to the state of a picture painted by the hand by an artist. These two types of are incomparable, because I don\u0026rsquo;t put my soul in quick photos \u0026ndash; it\u0026rsquo;s just for Instagram story, and definitely not for being putted on the wall in frame\nMy mentor, who taught me how to capture photos is more interested in photos of humans and their feelings, meanwhile I more prefer nature. I think it displays well why I think it\u0026rsquo;s impossible to compare two different photos. This is as incomparable as different styles of text presentation in different genres or different programming approaches depending on the language or architecture\nThe photography itself is not an art of modifying photos or talent, it’s a skill of viewing something perfect in ordinary window. Two people can look at the same window and see different compositions, different shades and colors. Nobody can’t tell that one point of view is better than another, because it based only on personal feelings which photographer try to show. Of course, if the picture is out of focus or contains part of someone’s leg it’s ruined picture, but if this stuff is a part of style or tells the story for viewer or perfectly composed, it’s undoubtedly an art\nFinally, I would like to show you what the preview photo looked like before processing. I think it\u0026rsquo;s completely different photo, and it doesn\u0026rsquo;t even pretend to be an art. The photo on preview is how I felt this raw photo:\n","permalink":"https://kiironoaki.gitlab.io/posts/20240301/","summary":"My point of view in photography and why art made in different styles can\u0026rsquo;t be compared","title":"About photography"},{"content":" Captured on «Samsung Galaxy Z Flip 5», 28 February 2024\nOriginal file: Google Photos License\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/C35HbhDoKLm/ My favourite type of photography is dark contrasting colors or black and white film. But every time there must be soft shadows\nI often find such compositions and light completely by accident and it’s especially inspiring\n","permalink":"https://kiironoaki.gitlab.io/posts/20240228/","summary":"In brand new blog, I want to show you my hobby: photography. I like to walk around and look for interesting compositions","title":"«Foggy window»"},{"content":"GDPR and CV license Due to GDPR, I must warn you that the CV is licensed under CC BY-NC-ND v4.0 (the copy of license text on this site), so there is no need to ask for my permission to its storage and distribution\nTL;DR You're allowed to store (as long as you want) and distribute the current CV and its PDF version for free, without my special permission. Sale or using this CV for other commercial purposes is prohibited Introduction Welcome! I\u0026rsquo;m a PHP Developer with over a decade of experience, specializing in web development with a big bias towards backend and microservices using Symfony. Currently, my frontend skills are outdated. This is because I didn\u0026rsquo;t work on that side for a long time, because of the position I have held, I have delved deeper into backend development, and have not used frontend tools, languages, and technologies for a long time – only if there was a need to fix something, but I\u0026rsquo;m always ready to develop and learn new technologies including those related to frontend. With GenAI I can work with front-end tools too, but I have little experience in modern frameworks, so I can\u0026rsquo;t say that I am a good front-end developer.\nRecently, I have been very interested in learning Kotlin native, Go and Dart+Flutter. In my free time I study the nuances of them and write small pet projects, but I don\u0026rsquo;t have enough time to do it as much as I would like. I\u0026rsquo;m also interested in microelectronics, and I have a small workshop where I assemble various devices from scratch, including soldering components. I have experience in working with Arduino, and I have a small collection of various sensors, modules, and other components. I also have experience in working with 3D modeling and animation in Autodesk Maya, which I studied in parallel with programming for a long time ago. However, I haven\u0026rsquo;t done it for a long time, so my skills in this area are quite rusty. I have a lot of experience in working with Linux, and I have been using it as my second operating system for more than 10 years.\nThe full story of my life as a developer is available below. You can also download this CV in PDF format Code examples Cigarettes’ counter widget for Garmin – a widget for my new watches I built to control daily cigarettes count Version updater – a tool for internal use. It manages the project version during stage/prod deployment. Wrote it in free time as a replacement for one ugly script that did it before. Fully corresponds to Semantic versioning specification. Built especially for PHP projects. Sonata bidirectional ordering problem – a real issue during the work. I liked the solution so much that I decided to put it in a separate repository (with the permission of the manager, of course) (October 2018) Test work for a company which name I can\u0026rsquo;t publish (March 2017) Another test work and its Symfony2 realization (January 2017) Test work for SmartResponder (January 2017) Test work for Titanium Software Experience August 2022: Cigarettes counter widget for Garmin 7 Fenix Source code: Gitlab, written in Monkey C\nTechnologies: Garmin Connect IQ SDK Monkey C\nA small widget for daily smoking tracking on watch. I had experience with tracking on an android smartphone, but it was uncomfortable for me and I constantly forgot to check in, because not using a smartphone permanently. The watch is always with me contrariwise. Of course, there are similar widgets in Garmin Connect IQ store, but it is paid and looks ugly. It\u0026rsquo;s not NIH-syndrome – I just wanted to create a widget with design-code of official Garmin applications. Recently I released it in the Garmin Connect IQ store as well as source code: https://apps.garmin.com/apps/fe580909-a374-45bb-b975-d98d3f429211\nSince September 2017: Dynatech Latvia Technologies: PHP 7 PHP 8 Laravel Symfony Angular Vue GraphQL OpenAPI PHPUnit Codeception GitLab (Git) GitLab CI Redis ClickHouse Looker Grafana Sentry MariaDB LDAP micro-services SAP API Facebook API Google API Microsoft API Atlassian Confluence Atlassian JIRA Docker\nRelated code:\nVersion updater Sonata bidirectional ordering problem Related activities:\nParticipated in series of presentations for junior developers (March 2018) PHP built-in functions (4/9): https://goo.gl/JuxtnC (Google Slides) HTTP basics (8/9): https://bit.ly/2H9y3jK (Google Slides) Security (9/9): https://bit.ly/2Fd0knE (Google Slides) I and team got the first place on the \u0026ldquo;A/B testing\u0026rdquo; hackathon (February 2019) July 2017 - August 2017: VivaWeb Location: Riga, Latvia\nTechnologies: PHP 5.6 MySQL\nMarch 2017 - June 2017: Extra Credit Location: Riga, Latvia\nTechnologies: PHP 5.6 Zend Framework Doctrine PostgreSQL\nMarch 2017: Relocation to Latvia March 2017: Test work for few Latvian companies Source code:\nhttps://github.com/kiironoaki/a87ab35a-bdbe-427b-a1a9-6584ff16d1fa https://github.com/kiironoaki/a87ab35a-bdbe-427b-a1a9-6584ff16d1fa/tree/symfony Technologies: Symfony Doctrine PHP 5.6 MySQL\nOctober 2016 - March 2017: Israel outsource Location: Chisinau, Moldova\nCompanies:\nHidden company Titanium Software Projects I can show:\nhttp://www.ha-midrasha.co.il http://www.fitnessjobs.co.il Technologies: PHP7 Gulp SASS LESS Jade MySQL Yii2 Codeception PHPUnit WordPress AngularJS\nJanuary 2017: Test work for Titanium Software Source code: https://github.com/kiironoaki/dc8bff3d-8942-49b8-bc39-a953530313a9\nThis is a test for OOP knowledge - there are no working code, and you can\u0026rsquo;t test it, because of the full abstraction of the project and no methods implementation were done\nTechnologies: Pure PHP\nApril 2016 - October 2016: Development aid Location: Chisinau, Moldova\nBack-end development: Laravel + MariaDB Front-end development: AngularJS Perhaps one of the coolest companies in my career. Sad to have to leave it. In this company, I liked literally everything - a team of real professionals, well-built processes, clean code and strict guidelines, excellent tools, as well as the ability to write tests and documentation. I miss those times sometimes\nTechnologies: Laravel MariaDB Bitbucket (Git) AngularJS SCSS Swagger Phinx Sphinx Twig Codeception PhpDocumentor PhpUnit Doctrine Bitbucket JIRA\nJuly 2015 - March 2017: Buyer MD Location: Chisinau, Moldova\nLinks I can show:\nhttps://buyer.md https://moldcash.com Developed a CRM and back office for this small business. Still support it infrastructure occasionally\nTechnologies: WordPress Symfony Doctrine Webmoney API PayPal API BlockChain.com API Bank API\nMay 2015 - July 2015: Optimum Web Location: Chisinau, Moldova\nLinks I can show:\nhttps://www.buoga.com http://fason-m.com.ua http://www.ibsco.ru http://www.mysociallineage.com http://placen.info https://www.times.ch Technologies: Symfony Laravel WordPress AngularJS Joomla Bitbucket (Git and MercurialHg) Redmine JIRA\nSeptember 2014 - April 2015: Titanium Bay Location: Chisinau, Moldova\nMy first job where I got to know Symfony. The work was in the position of a junior developer, which I combined with the university. One of the best places to work in my life thanks to the friendly team and the opportunity to learn on the job\nTechnologies: Symfony 2 Doctrine PHPDocumentor GitHub Twitter Bootstrap REST API MySQL JIRA\nSeptember 2014: Started studying at the «Technical University of Moldova»\nAugust 2014: CRVT «Memoria» Location: Chisinau, Moldova\nAssistance to their programmer in correcting the defects of the site\nTechnologies: HTML CSS JavaScript\nJune 2014: Finished studying at the «M. V. Lomonosov» high school\nNovember 2013 - February 2014: CompLUX Location: Chisinau, Moldova\nDevelopment site for an online store using OpenCart CMS. Site is not completed, work on it stopped by the customer due to the termination of funding\nTechnologies: OpenCart CMS Bitbucket (Mercurial Hg) JavaScript CSS\nMarch 2013 - April 2014: Не Межа (Ne Mezha) Location: Chisinau, Moldova\nDevelopment of the site with its own engine without third-party frameworks and components\nTechnologies: PHP 5.5 HTML CSS JavaScript Adobe Photoshop\nNovember 2012 - March 2013: Alterra Design Location: Chisinau, Moldova\nDevelopment of the site with its own engine without third-party frameworks and components. It was later replaced with Joomla CMS (custom theme)\nTechnologies: HTML CSS JavaScript Joomla CMS\nNovember 2010 - January 2011: 3D Modeling certification by Simpals\nFull story of my life as a programmer I started my career as a programmer at the age of 14, as a middle school student. Under the guidance of my close friend who works at the Technical University of Moldova, I got acquainted with the basics of programming, learned to write in C, PHP, ActionScript, as well as HTML, CSS and JavaScript. At the same time, I began to study Linux, which I have never parted with to this day. In parallel, I went to 3D modeling courses from \u0026ldquo;Simpals\u0026rdquo; in Autodesk Maya.\nUntil 2014, I worked on small individual projects as a freelancer, but unfortunately, they closed a few months after completion due to the fact that their business had not taken off. During the same period, I continued to learn from my friends how to use Linux, microelectronics, web server setup, internet security, databases, etc. By 2014, I already had an understanding of how to create projects from scratch to finished project, I knew how to work with code version control systems, and even then I was an ardent fan of clean code and architecture.\nDespite the fact that for the most part I had to work with WordPress, Joomla, and OpenCart, I never liked the CMS and in 2014 I was lucky enough to get a job in the \u0026ldquo;Titanium Bay\u0026rdquo; as a junior developer. I am incredibly happy that I was hired then, because it was there that I met my favorite PHP framework - Symfony. In the process, I mastered it and Doctrine in a few months, learned how to work with Composer and write tests using Codeception. Since then, I only increased my knowledge of these tools, because I have not yet found the best tools for PHP web development. Despite the fact that I am not going to dwell on this programming language and continue to study other technologies, it will still remain my favorite language, to which I have devoted 12 years of my life.\nIn Titanium Bay, I got acquainted with Bitbucket, JIRA services, how to work with GitLab and GitHub correctly (git flow and how to conduct a code review). After this company, in 2015 alone, I changed several companies due to the fact that they did not meet my knowledge needs, but in each of them I repeatedly brought my vision of the ideal code and how to work with it, and so I learned something new. Working in different projects, I also got better at understanding JavaScript and its plugins - JQuery, AJAX (they were very popular at the time), and many others, which were used separately in different projects. Separately, I can highlight that in one of the companies I worked with Arch Linux. With it, I simulated various attacks on a test server to identify critical vulnerabilities. Since then, I have always used the knowledge gained solely to create more secure systems. Also, in another company I worked as an assistant to the system administrator, completely assembling the server room with him from scratch.\nIn 2016, I had the opportunity for the first time to work with frameworks unfamiliar to me at that time - Laravel and AngularJS, as well as SASS (for converting to CSS). They seemed to me quite interesting - especially Angular, which showed me the possibility of completely separating the Front-end from the Back-end. Most likely, it was in this company that I realized that I wanted to deal more with the creation of the Back-end, and in particular the API - I began to deal with UI less and less and delve deeper into the principles of creating a competent architecture of the projects server side. It so happened that in that year my girlfriend, and I decided to get married, and since she is a citizen of Latvia and came to Moldova only to marry with me. We decided to relocate to her homeland, and for this I needed to find a better paid job. So I got to Deposit Partners, where I improved my skills in Angular, figured out fresh Vue with templates in Jade, and learned how to build all this staff using Gulp. Also, I worked with Yii2, new to me. In fact, I didn\u0026rsquo;t really like it - there are a lot of abstractions in it. Maybe I just didn\u0026rsquo;t have time to figure it out, but Symfony and Laravel seem to me to be more pragmatic.\nThe need for money pushed me to move to this company, but to my great regret, I was faced with an absolutely unpleasant management that cheated me about money and did not pay the amount for which we had originally agreed. Despite the interesting project and some new tools for me with which I would like to work longer, I had to change my place of work to a more profitable one. No matter how unpleasant it may be to say, at Titanium Software I was engaged in outdated technologies solely because of the high and stable salary, after which I collected the amount necessary for the move and left for Latvia. I was very pleased to work with people in this company and I learned a lot about Docker, which was gradually introduced into the company and adopted a lot of interesting experience from more experienced colleagues.\nIn March 2017, having got a job at Extra Credit, I worked there for more than three months, after which we came to the conclusion to terminate the cooperation due to the absolutely inadequate attitude towards me from my team lead. It consisted in the inability on his part to set the correct task, which is why I had to redo the same code several times. I won\u0026rsquo;t go into details, but I really didn\u0026rsquo;t like working with him.\nIn July 2017, immediately after that, I contacted DYNINNO, had an interview, but due to the stress from the previous company and several mistakes in the interview. It seemed to me that I was not competent enough for this company, and I found a small web development company. VivaWeb. It was a terrible mistake - I ended up on a team with no experience in development with an incompetent leader. The processes weren\u0026rsquo;t established - there were none at all. Several people were writing code in pure PHP and uploading it all at once to a production server via FTP - I thought I was in nightmare. Having tried to fix a project on which they had been working for several months, I began a full-scale refactoring and optimization, along with adding new planned functionality. However, after the customer stopped the development of the project, they decided to fire me, due to lack of projects, over which I could work with.\nI returned to DYNINNO again, and I am very happy with my decision - here I have been working for years with very cool professionals, with the right processes, advanced technologies, and a pleasant atmosphere. Over the past few years, I managed to work in four completely different teams, with a lot of projects and gain a huge amount of experience. Even the spring 2020 lockdown could not shake our systems, which are supported by many high-level specialists. Here I work with my favorite Symfony, Docker, GitLab CI, the 7th and 8 version of PHP, Codeception, Vue, Angular, React, dozens of microservices, and much more. What I like most is that I can learn something new every day.\n","permalink":"https://kiironoaki.gitlab.io/cv/","summary":"A detailed story of my experience as a developer","title":"Curriculum vitae"},{"content":"Walking is another hobby of mine. I really enjoy walking and looking for things and light for good photo. Accidentally found this little frosty little river in untouched snow clearing, with cute snow fluffs around sticks. There was also wild foxes, but they disappeared from my sight as soon as they noticed me, so there were no chances to capture them on photo\nFull image in Google Photos Full image in Google Photos Captured on «Samsung Galaxy A54», 6 January 2024\nLicense\u0026colon;\u0026nbsp;CC BY-SA v4.0 Instagram:\u0026nbsp;https://www.instagram.com/p/C1wqalHIhdi/ Garmin stats for \u0026laquo;Morning walk in the forest\u0026raquo; Date\u0026colon; 6 January 2024 (Saturday)\u0026nbsp;12:12 Location\u0026colon;Rīga, Latvia Time\u0026colon; 1:16:23 Distance\u0026colon; 5.40\u0026nbsp;km Avg. Pace\u0026colon; 14:10/km Avg. HR\u0026colon;\u0026nbsp; 113\u0026nbsp;bpm Elevation ascent\u0026colon; 48.5\u0026nbsp;m\u0026nbsp;\u0026uparrow; Elevation descent\u0026colon; 49.8\u0026nbsp;m\u0026nbsp;\u0026downarrow; Calories burned\u0026colon; 294\u0026nbsp;kcal Cadence\u0026colon; 102\u0026nbsp;spm Weather Condition\u0026colon; Partly cloudy Temperature\u0026colon; -12.2\u0026deg;C Humidity\u0026colon; 78\u0026percnt; Wind\u0026colon; North, 2\u0026nbsp;km/h Full stats:\u0026nbsp;https://connect.garmin.com/modern/activity/13383047242 ","permalink":"https://kiironoaki.gitlab.io/posts/20240106/","summary":"Walking is another hobby of mine. I really enjoy walking and looking for things and light for good photo","title":"Morning walk in the forest"},{"content":"","permalink":"https://kiironoaki.gitlab.io/gallery/202308-georgia/","summary":"My colleague offered me a trip for a week. I hope to write a very long post about this trip one day. It is very beautiful country with magnificent nature and charming mountains. I really enjoyed the trip and want to visit Georgia again one day","title":"Georgia"},{"content":"Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible.\nUsing Creative Commons Public Licenses Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses.\nConsiderations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors .\nConsiderations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public .\nCreative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License (\u0026quot; Public License\u0026quot;). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.\nSection 1 – Definitions. a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.\nb. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.\ne. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.\nf. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.\nh. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.\ni. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.\nh. Licensor means the individual(s) or entity(ies) granting rights under this Public License.\ni. NonCommercial means not primarily intended for or directed towards commercial advantage or monetary compensation. For purposes of this Public License, the exchange of the Licensed Material for other material subject to Copyright and Similar Rights by digital file-sharing or similar means is NonCommercial provided there is no payment of monetary compensation in connection with the exchange.\nj. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.\nk. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.\nl. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.\nSection 2 – Scope. a. License grant.\nSubject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:\nA. reproduce and Share the Licensed Material, in whole or in part, for NonCommercial purposes only; and\nB. produce and reproduce, but not Share, Adapted Material for NonCommercial purposes only.\nExceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.\nTerm. The term of this Public License is specified in Section 6(a).\nMedia and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.\nDownstream recipients.\nA. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.\nB. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.\nNo endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).\nb. Other rights.\nMoral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.\nPatent and trademark rights are not licensed under this Public License.\nTo the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties, including when the Licensed Material is used other than for NonCommercial purposes.\nSection 3 – License Conditions. Your exercise of the Licensed Rights is expressly made subject to the following conditions.\na. Attribution.\nIf You Share the Licensed Material, You must:\nA. retain the following if it is supplied by the Licensor with the Licensed Material:\ni. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);\nii. a copyright notice;\niii. a notice that refers to this Public License;\niv. a notice that refers to the disclaimer of warranties;\nv. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;\nB. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and\nC. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.\nFor the avoidance of doubt, You do not have permission under this Public License to Share Adapted Material.\nYou may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.\nIf requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.\nSection 4 – Sui Generis Database Rights. Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:\na. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database for NonCommercial purposes only and provided You do not Share Adapted Material;\nb. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and\nc. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.\nFor the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.\nSection 5 – Disclaimer of Warranties and Limitation of Liability. a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.\nb. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.\nc. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.\nSection 6 – Term and Termination. a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.\nb. Where Your right to use the Licensed Material has terminated under Section 6( a), it reinstates:\nautomatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or\nupon express reinstatement by the Licensor.\nFor the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.\nc. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.\nd. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.\nSection 7 – Other Terms and Conditions. a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.\nb. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.\nSection 8 – Interpretation. a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.\nb. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.\nc. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.\nd. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.\nCreative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.\nCreative Commons may be contacted at creativecommons.org.\n","permalink":"https://kiironoaki.gitlab.io/license/","summary":"Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International public license","title":"CV License"},{"content":"Link to Instagram: instagram.com/kiironoaki\n","permalink":"https://kiironoaki.gitlab.io/gallery/instagram/","summary":"I\u0026rsquo;m posting to Instagram since 2014, but here I collected only favourite photos without likes and other social stuff. This isn\u0026rsquo;t full album \u0026ndash; archiving is in progress","title":"Instagram"},{"content":"Web-site Static web-site generator: Hugo (GitHub repository) Theme: PaperMod by Aditya Telange Visited places maps: https://visitedplaces.com/ Gallery: lightGalleryJS.com Assets Garmin® SVG logo: SVGrepo.com Instagram SVG icon: SVGrepo.com File SVG icon: SVGrepo.com Image SVG icon: SVGrepo.com Archive SVG icon: SVGrepo.com PDF SVG icon: SVGrepo.com LeetCode SVG logo: Wikipedia, the free encyclopedia Map SVG icon: SVGrepo.com SVG Repo License\nWikimedia Foundation Terms of Use\nInspiration Code highlight color scheme: IntelliJ IDEA Darcula color scheme Hidden text (a.k.a \u0026ldquo;spoiler\u0026rdquo;): Habr hidden texts Notes color scheme (a.k.a \u0026ldquo;admonitions\u0026rdquo;): Diagrams.net ","permalink":"https://kiironoaki.gitlab.io/credits/","summary":"Intellectual property used","title":"Credits"},{"content":" Copyright This article is just copy with authorship and attribution preserved in case the main article disappearsOriginal article by Ritchie Roesch This recipe is for «X Trans CMOS V» sensor only Photos wouldn't be copied from original article, my examples will be provided later Settings Setting Value Film simulation Eterna Bleach Bypass Grain effect Strong, large Color chrome effect Strong Color chrome FX blue Off White Balance Fluorescent-1, Red: -2, Blue: -4 Dynamic range DR400 Tone curve \u0026gt; Highlight -2 Tone curve \u0026gt; Shadow +1 Color +2 Sharpness -1 High ISO NR -4 Clarity -2 Recommendations Setting Value ISO Up to 6400 Exposure compensation +⅓ .. +1 ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/fujixweekly-1960-chrome/","summary":"The copy of Fuji X Weekly article with authorship and attribution preserved in case the main article disappears","title":"Film simulation: 1960 Chrome"},{"content":" Copyright This article is just copy with authorship and attribution preserved in case the main article disappearsOriginal article by Ritchie Roesch This recipe is for «X Trans CMOS V» sensor only Photos wouldn't be copied from original article, my examples will be provided later Settings Setting Value Film simulation Classic Chrome Grain effect Strong, small Color chrome effect Strong Color chrome FX blue Weak White Balance 5300°K, Red: 0, Blue: -6 Dynamic range DR400 Tone curve \u0026gt; Highlight -0.5 Tone curve \u0026gt; Shadow -2 Color +3 Sharpness -2 High ISO NR -4 Clarity -2 Recommendations Setting Value ISO Up to 6400 Exposure compensation 0 .. +1 ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/fujixweekly-classic-color/","summary":"The copy of Fuji X Weekly article with authorship and attribution preserved in case the main article disappears","title":"Film simulation: Classic Color"},{"content":" Copyright This article is just copy with authorship and attribution preserved in case the main article disappearsOriginal article by Ritchie Roesch Photos wouldn't be copied from original article, my examples will be provided later Settings Setting Value Film simulation Velvia Grain effect Strong, small Color chrome effect Strong Color chrome FX blue Strong White Balance Auto, Red: +2, Blue: -2 Dynamic range DR400 Tone curve \u0026gt; Highlight +1 Tone curve \u0026gt; Shadow +1 Color +2 Sharpness +2 High ISO NR -2 Clarity +1 Recommendations Setting Value ISO Up to 6400 Exposure compensation +⅓ .. +1 ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/fujixweekly-kodak-ektachrome-e100vs-v1/","summary":"The copy of Fuji X Weekly article with authorship and attribution preserved in case the main article disappears","title":"Film simulation: Kodak Ektachrome E100VS v1"},{"content":" Copyright This article is just copy with authorship and attribution preserved in case the main article disappearsOriginal article by Ritchie Roesch This recipe is for «X Trans CMOS V» sensor only Photos wouldn't be copied from original article, my examples will be provided later Settings Setting Value Film simulation Classic Chrome Grain effect Strong, small Color chrome effect Weak Color chrome FX blue Off White Balance Daylight, Red: +4, Blue: -5 Dynamic range DR400 Tone curve \u0026gt; Highlight -1.5 Tone curve \u0026gt; Shadow +0.5 Color +3 Sharpness -2 High ISO NR -4 Clarity -2 Recommendations Setting Value ISO Up to 6400 Exposure compensation +⅔ .. +1 ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/fujixweekly-kodak-gold-200/","summary":"The copy of Fuji X Weekly article with authorship and attribution preserved in case the main article disappears","title":"Film simulation: Kodak Gold 200"},{"content":" Copyright This article is just copy with authorship and attribution preserved in case the main article disappearsOriginal article by Ritchie Roesch This recipe is for «X Trans CMOS V» sensor only Photos wouldn't be copied from original article, my examples will be provided later Settings Setting Value Film simulation Nostalgic Neg. Grain effect Weak, large Color chrome effect Off Color chrome FX blue Off White Balance Auto, Red: +1, Blue: -4 Dynamic range DR400 Tone curve \u0026gt; Highlight -0.5 Tone curve \u0026gt; Shadow +2.5 Color +4 Sharpness -1 High ISO NR -4 Clarity -3 Recommendations Setting Value ISO Up to 6400 Exposure compensation +⅓ .. +⅔ ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/fujixweekly-kodak-negative/","summary":"The copy of Fuji X Weekly article with authorship and attribution preserved in case the main article disappears","title":"Film simulation: Kodak Negative"},{"content":" Copyright This article is just copy with authorship and attribution preserved in case the main article disappearsOriginal article by Ritchie Roesch This recipe is for «X Trans CMOS V» sensor only Photos wouldn't be copied from original article, my examples will be provided later Settings Setting Value Film simulation Classic Chrome Grain effect Weak, small Color chrome effect Weak Color chrome FX blue Weak White Balance Daylight, Red: +4, Blue: -5 Dynamic range Auto Tone curve \u0026gt; Highlight 0 Tone curve \u0026gt; Shadow 0 Color 0 Sharpness -1 High ISO NR 0 Clarity -2 Recommendations Setting Value ISO Up to 6400 Exposure compensation +⅓ .. +1 ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/fujixweekly-kodak-portra-160-v2/","summary":"The copy of Fuji X Weekly article with authorship and attribution preserved in case the main article disappears","title":"Film simulation: Kodak Portra 160"},{"content":" Copyright This article is just copy with authorship and attribution preserved in case the main article disappearsOriginal article by Ritchie Roesch This recipe is for «X Trans CMOS V» sensor only Photos wouldn't be copied from original article, my examples will be provided later Settings Setting Value Film simulation Classic Chrome Grain effect Strong, large Color chrome effect Strong Color chrome FX blue Off White Balance 6600°K, Red: -1, Blue: -3 Dynamic range DR400 Tone curve \u0026gt; Highlight -2 Tone curve \u0026gt; Shadow -0.5 Color +3 Sharpness -2 High ISO NR -4 Clarity -3 Recommendations Setting Value ISO Up to 6400 Exposure compensation +⅓ .. +1.⅓ ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/fujixweekly-kodak-portra-800-v3/","summary":"The copy of Fuji X Weekly article with authorship and attribution preserved in case the main article disappears","title":"Film simulation: Kodak Portra 800"},{"content":" Copyright This article is just copy with authorship and attribution preserved in case the main article disappearsOriginal article by Ritchie Roesch This recipe is for «X Trans CMOS V» sensor only Photos wouldn't be copied from original article, my examples will be provided later Settings Setting Value Film simulation Nostalgic Neg. Grain effect Strong, small Color chrome effect Strong Color chrome FX blue Off White Balance Fluorescent-1, Red: -5, Blue: 0 Dynamic range DR200 Tone curve \u0026gt; Highlight +4 Tone curve \u0026gt; Shadow +3 Color -1 Sharpness -2 High ISO NR -4 Clarity -2 Recommendations Setting Value ISO Up to 6400 Exposure compensation 0 .. +⅔ ","permalink":"https://kiironoaki.gitlab.io/cheatsheets/fujixweekly-kodak-vision3-250d-v2/","summary":"The copy of Fuji X Weekly article with authorship and attribution preserved in case the main article disappears","title":"Film simulation: Kodak Vision3 250D"}]