Site uses cookies to provide basic functionality.
Javascript rendering is set to off by default when visiting the site via .onion and .i2p domains. It can be enabled back again in user's settings section. Javascript rendering set to off means, that you can disable javascript in your browser now and the site will remain functional.
There is also IRC server now available via native IRC clients or non javascript web based one.
Fonts can be adjusted in user's settings section as well.
Check FAQ for more.

OK

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Während nach der Reifen-Odyssee vom letzten Mal einer der Radhauskästen am STEMA B 6075 noch vollständig intakt war, die Hauptuntersuchung bestanden wurde, stellte sich nun heraus, dass irgendwie, irgendjemand sich in irgendeiner Form am Radhauskasten zu schaffen gemacht hat. Neuteil Dank STEMA-Shop und STEMA-Telefonsupport war es jedoch kein Problem direkt das Ersatzteil zu finden. Da […] The post Radhauskasten am STEMA B 6075 wechseln ..

Während nach der Reifen-Odyssee vom letzten Mal einer der Radhauskästen am STEMA B 6075 noch vollständig intakt war, die Hauptuntersuchung bestanden wurde, stellte sich nun heraus, dass irgendwie, irgendjemand sich in irgendeiner Form am Radhauskasten zu schaffen gemacht hat. Neuteil Dank STEMA-Shop und STEMA-Telefonsupport war es jedoch kein Problem direkt das Ersatzteil zu finden. Da […] The post Radhauskasten am STEMA B 6075 wechseln ..

该博客永久迁移至 https://zhangke.space/ 该博客永久迁移至 https://zhangke.space/ 该博客永久迁移至 https://zhangke.space/ 请大家关注我的新的博客:https://zhangke.space/ 新的博客的 RSS 是:https://zhangke.space/feed/ 目前的这个 GithubPage 将不再维护,感谢大家的支持。

Kürzlich stand ich wieder vor einer Aufgabe: In einem Verein, in dem ich mich hin und wieder engagiere, stand ein „Vereinsanhänger“, welcher seit einem Jahr mit der Hauptuntersuchung überfällig ist, dessen Elektrik nicht korrekt funktioniert und ein Reifen platt war. Der Anhänger, ein STEMA B 6075 Baujahr 2008, Erstzulassung 2009, ist insbesondere durch sein geringes […] The post Reifen für Anhänger einzeln kaufen und selber aufziehen – ..

Kürzlich stand ich wieder vor einer Aufgabe: In einem Verein, in dem ich mich hin und wieder engagiere, stand ein „Vereinsanhänger“, welcher seit einem Jahr mit der Hauptuntersuchung überfällig ist, dessen Elektrik nicht korrekt funktioniert und ein Reifen platt war. Der Anhänger, ein STEMA B 6075 Baujahr 2008, Erstzulassung 2009, ist insbesondere durch sein geringes […] The post Reifen für Anhänger einzeln kaufen und selber aufziehen – ..













WordPress 搭建个人博客指南 WordPress 是一套免费开源的网站管理框架,目前全球 43% 的网站都是使用 WordPress 搭建,具备丰富的插件和主题模版,而且使用简单,新手可以快速搭建一个完备的网站,今天介绍如何使用 WordPress 搭建一个个人博客网站。 域名 首先需要购买一个域名,去哪里买都行,阿里云可以使用支付宝付款,国外有些平台也可以使用支付宝,不过大部分都是 PayPal 和信用卡。 价格根据不同的域名差别很大,我在阿里云买的 zhangke.space 十年才 188 块钱,四舍五入等于不要钱,同样的域名不同平台差别也很大,可以货比三家。 服务器 服务器这个也根据自己需求买就行了,想折腾的可以自己买 VPS 然后一点点开始搭建,想省事的也可以直接买虚拟主机,因为 WordPress 体量很大,用户群体非常多,所以很多商家都提供针对 WordPress 的预制服务,可以直接买个 WordPress 虚拟主机,买来就能用,毫无....


介绍 Kotlin Serialization 是 Kotlin 提供的 跨平台 序列化和反序列的库,它可以将对象树序列化成一些常见的格式,纯天然支持 Kotlin,扩展性很强,几乎可以满足所有业务场景,而且不需要使用反射,性能很好,可以说是目前 Kotlin 语言序列化工具的不二之选。 kotlinx.serialization 目前支持的格式有如下几种: JSON: kotlinx-serialization-json Protocol Buffers: kotlinx-serialization-protobuf CBOR: kotlinx-serialization-cbor Properties: kotlinx-serialization-properties HOCON: kotlinx-serialization-hocon (only on JVM) 大部分情况下我们使用的是 JSON,所以本篇文章主要会介绍 JSON 相关....

签证 日本的旅游签证只能通过旅行社代办,直接某宝或者某猪搜索日本签证即可。 我们办理的是单词旅游签证,可以在日本停留十五天,有效期三个月,需要材料如下: 护照原件 身份证复印件 户口本复印件 照片2张(3.5*4.5 白底) 签证申请表(旅行社会把 PDF 给你,自己去打印好然后填写) 除此之外还需要财力证明,如下条件满足之一即可: 近一年税单 (年缴税额大于800元以上,个税APP可查询) 近一年流水账单(体现工资奖金字样,12个月加起来满足10万以上)+在职证明原件 银行10万存款证明原件 信用卡金卡(卡面需要显示级别,提供正反面彩色复印件以及近六个月信用卡流水账单) 国内大陆普通全日制本科以上在读或毕业三年内(提供学信网学籍报告,带二维码那种) 另外如果是和家人一起办理的话,财力证明是可以共享的,也就是说一家人里面一个人满足即可,但是需要另外提供家庭关系的证明,比如结婚证,出生证,户口本在一本。 单次的签证一般是 190 块钱左右,加急的 37....



Die am 17. Oktober 2022 den Lechstahlwerken erteilte Ausnahmegenehmigung für die Rodung des Lohwaldes - Alle Unterlagen zu Rechtsgutachten, Studien, Umweltverträglichkeitsprüfungen, Anhörungen von Umweltverbänden die hierzu stattgefunden haben

Die am 17. Oktober 2022 den Lechstahlwerken erteilte Ausnahmegenehmigung für die Rodung des Lohwaldes - Alle Unterlagen zu Rechtsgutachten, Studien, Umweltverträglichkeitsprüfungen, Anhörungen von Umweltverbänden die hierzu stattgefunden haben


Voyager 是一个专为 Compose 页面导航编写的框架,类似于 Jetpack Navigation,但它支持 Compose 跨平台,以 API 简洁好用而广受好评,我之前用的也是 Jetpack Navigation,后面转到 Voyager 之后就再也回不去了,API 设计的非常巧妙,文档很详细,社区也很活跃。 目前 Voyager 已经支持了几乎所有的使用场景,现在我大概用了一年了,今天写一篇文章来总结一下使用经验,以及一些官方文档没有的使用技巧。 简介 Voyager 官网地址: https://voyager.adriel.cafe/ 对于没用过单 Activity + Compose UI 的架构的朋友来说可能导航框架有点陌生。在该架构下,页面的定义跟传统 Android 开发有些区别,对于传统 Android 开发来说,页面就是指 Activity/Fragment,但对于单 Activity + Compose 页面的架构来说, 页面....

今年打算重新开始刷题了,会保持每周至少两题,我会隔段时间写一篇文章记录最近刷的题和题解思路。 字符串相乘 https://leetcode.cn/problems/multiply-strings/description/ 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意: 不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 = "2", num2 = "3" 输出: "6" 示例 2: 输入: num1 = "123", num2 = "456" 输出: "56088" 提示: 1 <= num1.length, num2.length <= 200 num1 和 num2 只能由数字组成。 num1 和 num2 都不包含任何前导零,除了数字0本身。 解 由于字符串长....


Mitte 2015 war bei unserem Scenic II plötzlich das Lüftungsgebläse aus. Seinerzeit berichtete ich im Beitrag „Scenic II Lüftungsgebläse plötzlich aus„, wie eine freie Werkstatt diesen gegen ein originales Ersatzteil vom Erstausrüster (Valeo) tauschte. Kostenpunkt damals: 172 Euro. Den genauen Defekt am Vorwiderstand erfuhren wir damals nicht. Nun, fast pünktlich zu Weihnachten, war die Lüftung […] The post Scenic II Lüftungsgebläse plötz..

Mitte 2015 war bei unserem Scenic II plötzlich das Lüftungsgebläse aus. Seinerzeit berichtete ich im Beitrag „Scenic II Lüftungsgebläse plötzlich aus„, wie eine freie Werkstatt diesen gegen ein originales Ersatzteil vom Erstausrüster (Valeo) tauschte. Kostenpunkt damals: 172 Euro. Den genauen Defekt am Vorwiderstand erfuhren wir damals nicht. Nun, fast pünktlich zu Weihnachten, war die Lüftung […] The post Scenic II Lüftungsgebläse plötz..


Clean 架构是 Uncle Bob 提出的一种软件架构,Bob 大叔同时也是 SOLID 原则的命名者。 Clean 架构图如下: 这张图描述的是整个软件系统的架构,而不是单体软件,其中至少包括服务端以及客户端。 对于 Android 单体应用开发来说应该还需要一个更贴切更精确的 Clean 架构图。 我大概总结了一下过往的开发经验,找出了应用架构中的重要部分,然后绘制了下面这张 Clean 架构指导下的 Android 应用架构图: 以及一般数据流向图: 依赖关系 Clean 架构基本准则是源码级别的内层不依赖外层,依赖关系永远是单向的,外层向内层依赖。 如上,Model 层是没有任何依赖的,UseCase 可以依赖 Model 和 Repo 等,但绝不能依赖 ViewModel,UI 层依赖 ViewModel,但 ViewModel 绝不能依赖 UI 层。 为了达到这种源码级别的依赖关系,我们必须借助一些工具来实现依....

最近在用到圆角矩形时发现一个问题,如果控件宽度太小,小于圆角直径的话,Compose 会做一些特殊的处理,即按照比例缩小圆角半径,让其仍然看起来是个圆角矩形,如下图。 对于有些场景,例如上面的场景,这样做就不太合理了,我们希望圆角半径仍然保持不变,就是这样。 本篇文章内容就是关于如何实现上面的效果。 Shape 本来我是想直接通过 Canvas 来绘制,但发现这么做不够通用,Compose 中一般通过 *Shape* 来描述形状,而上面的情况也属于一种圆角矩形形状,那么如果我可以通过定义一个能解决上述情况的 Shape 的话就可以应用在很多地方了。 SlickRoundCornerShape Compose 中提供了一个 Shape 接口,其中包含一个方法,我们自定义 Shape 时主要就是实现这个方法。 @Immutable interface Shape { /** * Creates [Outline] of ....

KRouter (Kotlin-Router) 是一个非常 轻量级的 Kotlin 路由框架 。 具体而言,KRouter 是一个通过 URI 发现接口实现类的框架。就像这样: val homeScreen = KRouter . route < Screen >( "screen/home?name=zhangke" ) 起因是段时间用 Voyager 时发现模块间的互相通信没这么灵活,需要一些配置,以及 DeepLink 的使用也有点奇怪,相比较而言我更希望能用路由的方式来实现模块间通信,于是就有了这个库。 https://github.com/0xZhangKe/KRouter 主要通过 KSP、ServiceLoader 以及 反射 实现。 使用 上面的那行代码几乎就是全部的使用方式了。 正如上面说的,这个是用来发现接口实现类并且通过 URI 匹配目的地的库,那么我们需要先定义一个接口。 ....

Org Debt - june.kim - 2 years ago - deu

Nachdem ich letzten Monat die Federn hinten sowie einen ABS-Sensor getauscht hatte, um den Renault Scenic II wieder fit für die Hauptuntersuchung zu machen, probierte ich letzte Woche mein Glück. Bemängelt wurde allerdings die fehlende Batteriepolabdeckung und ein bis zwei andere Kleinigkeiten. Entsprechend beschaffte ich eine Ersatz-Batteriepolabdeckung für insgesamt 14,99€ inklusive Versand. Viel Geld für […] The post Batteriepolabdeck..

Nachdem ich letzten Monat die Federn hinten sowie einen ABS-Sensor getauscht hatte, um den Renault Scenic II wieder fit für die Hauptuntersuchung zu machen, probierte ich letzte Woche mein Glück. Bemängelt wurde allerdings die fehlende Batteriepolabdeckung und ein bis zwei andere Kleinigkeiten. Entsprechend beschaffte ich eine Ersatz-Batteriepolabdeckung für insgesamt 14,99€ inklusive Versand. Viel Geld für […] The post Batteriepolabdeck..

WIP Explosion - june.kim - 3 years ago - deu

要么说 Compose 优雅呢,假如你想画个东西,用安卓 View 的话你要继承 View 并且实现其中的 onDraw 方法,然后才能拿到 Canvas 开始绘制,但 Compose 你只需要这样: Canvas ( modifier = Modifier . size ( 100 . dp )) { // draw in DrawScope } 非常的自然,没有比这个更自然的事情了。 先看下效果图吧。 贝塞尔曲线 贝塞尔曲线相关的科普网上有非常多的文章,这里就不详细介绍了,本文主要内容是如何通过 Compose 绘制上面样式的贝塞尔曲线趋势图。 首先简单回顾一下贝塞尔曲线,贝塞尔曲线一般分为一阶贝塞尔曲线(直线),二阶、三阶等更高阶的贝塞尔曲线,通过设置不同的控制点我们可以得到几乎所有类型的曲线。 我们可以通过这个特性绘制出一些很优美的曲线出来。 同样 Compose 的 Canva....

虽然 Android 提供了 CollapsingToolbarLayout,但是 Compose 并没有这个组件,好在 Compose 实现起来并不困难,借助 Compose 嵌套滚动的 Api 可以轻易实现,先看下效果图。 在开始实现之前,需要先了解下 NestedScrollConnection 。 NestedScrollConnection 这是 Compose 嵌套滚动系统提供的 Api,通过它可以参与嵌套滚动事件的处理。 主要包含了以下几个方法: /** * Pre scroll event chain. Called by children to allow parents to consume a portion of a drag * event beforehand * * @param available the delta available to consume for pre scroll * @param s....

亲手封装一个简单灵活的下拉刷新上拉加载 Compose Layout Compose 的下拉刷新有现成的 Material 库 可以直接使用,非常简单方便。 但是上拉加载目前没看到有封装的特别好的库,Paging 有些场景无法满足,而且上拉加载也是个比较简单的功能,没必要再去依赖一个质量未知的库。我们可以基于目前的 LazyList 简单的封装一个灵活的组件。 基本原则是仍然基于现有的 PullRefresh 以及 LazyList API 实现,不依赖三方库,使用简单灵活好用。 接口设计 首先我们将这个可以上拉加载下拉刷新的 Compose 函数命名为 LoadableLazyColumn。 上面说到我们需要基于 PullRefresh 以及 LazyList API 实现,这两个组件都具备各自的 State。 PullRefreshState :下拉刷新的 State LazyListState :LazyColumn 的 State 由于我们....

MVI MVI 架构核心思想是 单一可信数据源 。 ViewModel 中需要维护着一个 UiState ( 一般来说会是个 data class ),这个 UiState 包含了 UI 层所需要的所有数据,或者说描述了 UI 层的所有状态,同时这个 UiState 应该具备通知观察者更新的能力,例如使用 **StateFlow**。 UI 层应该仅通过该 UiState 渲染。那么对于这个页面的 Composable 函数来说,入参中表示数据的部分应该只有一个 UiState。 fun NavGraphBuilder . registerLoginPage ( navController : NavController ){ composable ( "login" ){ val viewModel : LoginViewModel = viewModel () val uiState ....

Digital Diet - june.kim - 3 years ago - deu

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
40 visitors online