快速生成 Go 語言數據庫模型:探索 GORM gen 的便捷神器
官方文檔:https://gorm.io/zhCN/gen/create.html 一、安裝 mysql 1、安裝 mysql拉取 MySQL 鏡像docker pull mysql運行 MySQL 容器docker run –name mysql-server -p 3306:3306 -e MYSQLROOTPASSWORD=123456 -d mysql安裝mysql客戶端brew ⌘ Read more
Go 實現的一個 bitset,設計思想非常棒,值得參考收藏!
這兩日讀了一個實現二維碼生成的庫。其中的 bitset 設計得非常好,就摘抄記錄下來,與大家一起分享。bitset 實現一個可擴展的 bit 集合,可以添加 bit 和查看 bit。它在二維碼生成中,用來將編碼後的內容協助生成位圖,然後通過位圖進行繪製二維碼。二維碼的黑白格子正好用二進制 0 和 1 來表示。 下面開始詳細講解這個功能設計: 一、我們使用一個結構體來存儲 bit 序列。Bits ⌘ Read more
Golang 中 JSON 操作的 5 個常見陷阱(建議收藏!)
JSON 是許多開發人員在工作中經常使用的一種數據格式。它一般用於配置文件或網絡數據傳輸等場景。由於其簡單、易懂、可讀性好,JSON 已成爲整個 IT 界最常用的格式之一。對於這種情況,Golang 和許多其他語言一樣,也提供了標準庫級別的支持, encoding/json[1]。就像 JSON 本身很容易理解一樣,用於操作 JSON 的編碼 / JSON 庫也非常容易使用。但我相信,很多開發者可 ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:986 ARCHIVED:72965 CACHE:2435 FOLLOWERS:17 FOLLOWING:14
[47°09′19″S, 126°43′06″W] Reading: 1.64000 PPM
Erlang Solutions: Blockchain Tech Deep Dive 2/4 | Myths vs. Realities
This is the second part of our ‘Making Sense of Blockchain’ blog post series – you can read part 1 on ‘6 Blockchain Principles’ here. This article is based on the original post by Dominic Perini here.
Join our FinTech mailing list for more gre … ⌘ Read more
More Details About iOS 18’s AI Features Revealed
Apple is planning to introduce new AI features including Smart Replies for messages and a generative retouch tool for photos in iOS 18, a new report claims.
A new article from _[AppleInsider](https://appleinsider.com/articles/24/05/30/ios-18-project-greymatter-will-use-ai-to-summarize-notif … ⌘ Read more
Golang 狀態機設計模式
本文介紹了 Golang 狀態機模式的一個實現示例,通過該模式,可以解耦調用鏈,有助於實現測試友好的代碼,提高代碼質量。原文: Go State Machine Patterns[1]導言在我們開發的許多項目中,都需要依賴某種運行狀態從而實現連續操作。這方面的例子包括:解析配置語言、編程語言等 在系統、路由器、集羣上執行操作… ETL(Extract Transform Loa ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:985 ARCHIVED:72956 CACHE:2433 FOLLOWERS:17 FOLLOWING:14
🧮 USERS:1 FEEDS:2 TWTS:984 ARCHIVED:72948 CACHE:2462 FOLLOWERS:17 FOLLOWING:14
I think it is a good addition. Similar to how the Fraidycat RSS reader works. Fraidyc.at also support twtxt, but have not seen any updates since 2021…
🧮 USERS:1 FEEDS:2 TWTS:983 ARCHIVED:72943 CACHE:2459 FOLLOWERS:17 FOLLOWING:14
The XMPP Standards Foundation: Scaling up with MongooseIM 6.2.1
MongooseIM is a scalable, extensible and efficient real-time messaging server that allows organisations to build cost-effective communication solutions. Built on the XMPP server, MongooseIM is specifically designed for businesses facing the challenge of large deployments, where real-time communication and user experience are critical. The main feature of the recently released [MongooseI … ⌘ Read more
Armbian 24.5.1: Emphasizing Stability & User Experience For Diverse Hardware Platforms
Armbian 24.5.1: Emphasizing Stability & User Experience For Diverse Hardware Platforms
The release of Armbian 24.5.1 Havier marks a significant update focusing on stability enhancements and user experience improvements for a variety of supported hardware platforms. This latest version introduces substantial modifications and updates as detailed in an extensive changelog. ⌘ Read more
[47°09′02″S, 126°43′19″W] Reading: 1.65 Sv
[47°09′22″S, 126°43′58″W] Reading: 1.73 Sv
在 Golang 中不要簡單的返回 err
相反, 添加相關的調試細節。有些人喜歡抱怨 Go 需要編寫大量的 “ iferr!=nil{returnerr}” 代碼塊。這些人並沒有真正理解 Go 的錯誤處理機制。實際上, 他們抱怨的正是處理 Go 錯誤的完全錯誤方式: returnerr是一種反模式。讓我通過一些示例代碼來解釋我的意思: 一個用於配置 mTLS[1] 連接的輔助庫。(“雙向 TLS” 是向服務器證明客戶端身份的一種方式。)p ⌘ Read more
探索 Go 語言數據庫查詢的終極指南:深入解析 GORM 的強大查詢功能
一、GORM 基本查詢1、基本查詢func (c UserController) UserSelect() { //1、查詢id=3的用戶 user := models.User{Id: 3} models.DB.Find(&user) //2、查詢所有數據 user := []models.User{} result := models.DB.Find(&user) //5 (統計 ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:982 ARCHIVED:72937 CACHE:2463 FOLLOWERS:17 FOLLOWING:14
🧮 USERS:1 FEEDS:2 TWTS:981 ARCHIVED:72932 CACHE:2463 FOLLOWERS:17 FOLLOWING:14
名画pk决赛:当名画《清明上河图》PK《千里江山图》,你觉得哪幅画在你心中更胜一筹?
太巧了,这正是个把月前我在高中美术鉴赏课中抛给学生的一个辨析问题。学生们回答的很不错。我就直接搬运一下他们的答案吧。先说结果。52人的班级多过半数(有超过30人)投给了《清明上河图》,我也是。学生比较成熟的代表观点如下:
选《清明上河图》方:
1 题材稀缺,古代绘画中描绘祖国大好河山的作品比比皆是,关注民生反映现世生活的比较稀有,表现内容看似平常,但人间烟火的平凡朴实更能打动人心,相较古人胸中丘壑的理想,不仅具有丰富的艺术价值,历史价值更胜一筹。
2 画工超牛,几百个人物生动形象,细致描画,三教九流,神态各异。细节丰富耐看,画面节奏感强,突出高潮,故事性、趣味性,引人入胜。
3 画面有深刻内涵,通过特有的风俗画的艺术形式即实现了当时隐喻曲谏的政治目的,如今又是考证宋代社会经济,民生阶层,城市治理,对外贸易交流,国防政策及实效的第一手资料,比《东京梦华录》的记载更详实生动细致。
4 作品强烈的个 … ⌘ Read more
Top Stories: iOS 17.5.1 Fixes Concerning Photos Bug, All-New iPhone 17 Model Rumored, and More
It’s been quite a week of Apple news and rumors, ranging from a concerning bug with deleted photos reappearing on users’ devices to hot rumors about a new high-end iPhone model for 2025 and a MacBook with a foldable screen coming as soon as 2026.
Other news and rumors this week included fresh expectations for iOS 18 fe … ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:979 ARCHIVED:72891 CACHE:2432 FOLLOWERS:16 FOLLOWING:14
[47°09′38″S, 126°43′37″W] Raw reading: 0x66501ED1, offset +/-1
深入理解 Go 語言 Gin 框架的請求處理機制
一、獲取 GET 請求 1、URL?參數 http://127.0.0.1:8080/user/search?username=snail&address=sh package mainimport ( “github.com/gin-gonic/gin” “net/http”)func main() { //Default返回一個默認的路由引擎 r := gin.Default ⌘ Read more
Apple Sheds More Light on iOS 17.5 Bug That Resurfaced Deleted Photos
Last week, some iPhone users reported that Apple’s iOS 17.5 update had introduced a bug that caused old photos that were deleted to reappear in the Photos app. Apple quickly released an iOS 17.5.1 update to fix the issue, but for many users, its explanation of “da … ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:978 ARCHIVED:72877 CACHE:2425 FOLLOWERS:16 FOLLOWING:14
[47°09′03″S, 126°43′32″W] Reading: 1.85 Sv
高考志愿填报有哪些方法和技巧?
志愿填报方法其实也是这些年老生常谈的问题了,首先从填报模式上来看,目前志愿填报就是三种模式:
1.新高考的专业+院校模式,适用于2024年的浙江、山东、辽宁、河北、重庆、贵州以及2025年的青海。
2.新高考的院校+专业组模式,2024年适用于上海、北京、天津、海南、江苏、湖南、湖北、广东、福建、黑龙江、吉林、甘肃、广西、安徽、江西等省市和自治区;2025年第一年参加新高考的省份中,除青海外都采用该模式。
3.老高考模式,2024年适用于陕西、山西、宁夏、西藏、新疆、四川、云南、青海、河南等省份。
志愿填报的方法当然多种多样,我也只是一家之言,但可以肯定的是不同的志愿填报模式对志愿填报方法肯定会存在影响,我尽量从这一层面来给大家分享一些志愿填报的思路和注意事项。
对于专业+院校模式,这种模式优点很明显,没有调剂,而且志愿填报的灵活度非常大,可以充分考虑考生对专业、院校、城市等等各方面的需求,夸张点说几乎是想怎么填就怎么填。但同样也存在缺点 … ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:977 ARCHIVED:72859 CACHE:2417 FOLLOWERS:16 FOLLOWING:14
🧮 USERS:1 FEEDS:2 TWTS:976 ARCHIVED:72846 CACHE:2421 FOLLOWERS:16 FOLLOWING:14
iOS 17.5.1 & iPadOS 17.5.1 Update Released to Fix Reappearing Deleted Photos Bug
Apple has released a small bug fix update for iPhone and iPad versioned as iOS 17.5.1 and iPadOS 17.5.1. The update specifically aims to fix a very strange bug where deleted photos would randomly reappear on some users devices. Sometimes the photos that reappeared on user devices were deleted many years prior, raising serious questions … [Read More](https://osxdaily.com/ … ⌘ Read more
ADHD需要哪些因素才能取得更高成就呢?
Garber将取得较高成就的ADHD的共同特征进行了归类,将之称为“复原力(resilience factor)”,可以被分为内部因素(internal)和外部因素(external)
1.控制(Control):关注如何获得并保持对自己生活的控制;
2.动机(Desire):积极或消极的动机都可以,比如“我希望我的理想可以实现”。
3.目标导向(Goal orientation):聚焦于特定的、明确的目标,当然这个目标应该是现实的、可行性的;
4.重构(Reframing):重新定义ADHD,找到自己的优势,从而克服困难和挑战;
5.持之以恒(Pers … ⌘ Read more
A人好书-社群书单分享
序言在快节奏、充满干扰的世界里,找到一片宁静的阅读空间似乎是一项挑战。但阅读不应该是负担,它应该是一次冒险,一次发现,一次心灵的旅行。
今日书单 1.《为什么长大》 苏珊·奈曼 《为什么长大》 苏珊·奈曼“成长更多地关乎勇气而非知识:世界上所有的知识都无法代替你运用你自己的判断力的勇气。”
——很有启发的易读哲学书 by蘑菇
2.《射雕英雄传》 金庸 《射雕英雄传》 金庸“可是天下尽有聪明绝顶之人,文才武功,琴棋书画,算数韬略,以至医卜星相,奇门五行,无一不会,无一不精!只不过你们见不着罢了。”
_——傻小子初入社会遇到很多人心险恶的故事,不知为 … ⌘ Read more
Cloudflare 最佳實踐:如何通過 Go PGO 回收 CPU
Golang 1.20 在 go 編譯器引入了對配置文件引導優化 (PGO) 的支持。這允許指導編譯器根據系統的真實行爲引入優化。在 Cloudflare 的可觀察性團隊中,我們維護着一些基於 Go 的服務,這些服務在全球範圍內使用數千個內核,因此,即使宣傳的節省 2-7%,也能大幅減少我們的 CPU 佔用空間,而且實際上是免費的。這將減少我們內部服務的 CPU 使用率,釋放這些資源來滿足客戶請求 ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:975 ARCHIVED:72840 CACHE:2426 FOLLOWERS:16 FOLLOWING:14
[47°09′19″S, 126°43′10″W] Reading: 1.53 Sv
Apple Releases iOS 17.5.1 With Fix for Reappearing Photos Bug
Apple today released iOS 17.5.1 and iPadOS 17.5.1, minor updates to the iOS 17 and iPadOS 17 operating system updates that came out last September. The 17.5.1 updates come a week after the launch of iOS 17.5 and iPadOS 17.5.
。// file: main. ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:969 ARCHIVED:72758 CACHE:2447 FOLLOWERS:16 FOLLOWING:14
🧮 USERS:1 FEEDS:2 TWTS:967 ARCHIVED:72748 CACHE:2457 FOLLOWERS:15 FOLLOWING:14
🧮 USERS:1 FEEDS:2 TWTS:966 ARCHIVED:72732 CACHE:2505 FOLLOWERS:15 FOLLOWING:14
🧮 USERS:1 FEEDS:2 TWTS:965 ARCHIVED:72667 CACHE:2505 FOLLOWERS:15 FOLLOWING:14
你管这破玩意叫指针?
内存,通常被严谨地画成下面这个样子,一个下方是低地址上方是高地址的格子楼。
但我今天换种画法,画成下面这个样子。
每个格子代表内存中的 1 个字节(8 位),格子上的数字就代表内存地址,我也直接用 10 进制来表示了,免得 16 进制又算不明白了。
目前内存是完全空的,格子里没有任何内容。
试想一下,如果你忘掉所有的语法规则和编程规范,你会如何描述对这些内存格子的操作呢?
一、类型系统
很简单,往格子 3 处放个数字 29,往格子 6 处放个数字 38,就这么简单直接地描述即可。
 today announced the debut of a new Matter 1.3 specification that’s available for device makers and platforms. Matter is a smart home protocol that allows smart devices to work across multiple platforms, including HomeKit.
Matt … ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:961 ARCHIVED:71927 CACHE:2437 FOLLOWERS:15 FOLLOWING:14
A Nokia Art Jam organizada pelo @Polyducks@Polyducks é até 30 de maio!
Viddy, a modern watch(1) alternative with paging, visual diffs, and history: https://github.com/sachaos/viddy
Go Heap Profile 怎麼了?
Go heap profile 是常常用來檢查內存泄露和內存佔用大問題的問題的手段,而且非常常用。而且,我們也經常創建兩個間隔較長的 heap profile, 獲取它們的差值來方便查看內存泄露: Hi, 使用多年的 go pprof 檢查內存泄漏的方法居然是錯的?! [1]今天,度廠的一位同學提出了一個很有意思的案例,讓我們對 heap profile 有了更深的理解。問題: heap prof ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:960 ARCHIVED:71872 CACHE:2384 FOLLOWERS:15 FOLLOWING:14
[47°09′09″S, 126°43′52″W] Raw reading: 0x663928B1, offset +/-1
🧮 USERS:1 FEEDS:2 TWTS:959 ARCHIVED:71861 CACHE:2371 FOLLOWERS:15 FOLLOWING:14
🧮 USERS:1 FEEDS:2 TWTS:958 ARCHIVED:71842 CACHE:2358 FOLLOWERS:15 FOLLOWING:14
🧮 USERS:1 FEEDS:2 TWTS:957 ARCHIVED:71798 CACHE:2420 FOLLOWERS:15 FOLLOWING:14
🧮 USERS:1 FEEDS:2 TWTS:956 ARCHIVED:71640 CACHE:2397 FOLLOWERS:15 FOLLOWING:14
I guess I’m not missing my GUI Web Browser yet. In fact, I think I’m enjoying this. 😆
I might even drop to TTY to try stuff I read about earlier today.
Celebrating 1 year of A11y Design Bootcamp: Takeaways and tips
A11y Design Bootcamp is a live educational program that consists of exercises, discussions, and knowledge shares to raise awareness of web accessibility best practices, the role designers play in creating accessible products, and how to advocate for accessibility with cross-functional partners.
The post [Celebrating 1 year of A11y Design Bootcamp: Takeaways and tips](https://github.blog/2024-05-02-celebrating-1- … ⌘ Read more
Erlang Solutions: Naming your Daemons
Within Unix systems, a daemon is a long-running background process which does not directly interact with users. Many similar processes exist within a BEAM application. At times it makes sense to name them, allowing sending messages without requiring the knowledge of their process identifier (aka PID). There are several benefits to naming processes, these include:
- Organised processes: using a descriptive and meaningful name organises the processes in the system. It cla … ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:955 ARCHIVED:71609 CACHE:2409 FOLLOWERS:15 FOLLOWING:14
Beta 4 of macOS Sonoma 14.5, iOS 17.5, iPadOS 17.5, Available for Testing
The fourth beta versions of iOS 17.5, macOS Sonoma 14.5, and iPadOS 17.5 have been released to users engaging in the beta testing programs for Apple system software. Additionally, new betas for watchOS 10.5, tvOS 17.5, and visionOS 1.2, are also available. While it’s not clear when the final versions of these system software versions … [Read More](https://osxdaily.com/2024/04/30/beta-4-of-m … ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:954 ARCHIVED:71577 CACHE:2425 FOLLOWERS:15 FOLLOWING:14
不可思議的快!加速 Docker 中構建 Golang 應用
這些天我在工作中正在進行一個 GoLang 項目。這與我們通常使用的 Java 和 Spring Boot 應用程序有很大不同, 感覺很不錯:)。和我們所有的其他組件一樣, 這個 GoLang 項目也需要被封裝在一個容器中, 才能在 Kubernetes 集羣中執行。所以我編寫了一個 Dockerfile:構建階段FROM golang:1.22.1-alpine AS buildWORKDIR ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:953 ARCHIVED:71562 CACHE:2412 FOLLOWERS:15 FOLLOWING:14
Is the GNOME Foundation Going to Go Bankrupt in 1 Year?
It looks that way. ⌘ Read more
Golang 高效的切片拼接和 Go1-22 中新的拼接方法
在 Go 中,切片拼接是一種常見操作,但如果處理不當,可能會導致性能問題或意外的副作用。本文將詳細介紹幾種切片拼接的高效方法,討論它們的優缺點以及適當的使用場景。 基本的方法和其限制使用 append 函數最直接的方法是使用 append 函數,它將一個切片的元素添加到另一個切片的末尾。slice1 := []int{1, 2}slice2 := []int{3, 4}result := app ⌘ Read more
Go 語言將 PDF 轉爲 Word ,代碼怎麼實現?
將 PDF 轉換爲 Word 這是一個很常見的功能了,用 Go 語言實現,可以通過以下步驟完成:1 安裝 PDF 轉換工具庫:首先需要使用 Go 語言中的 PDF 轉換庫,比如 pdftoword 或 pdfcpu。你可以使用 Go 的包管理工具(如 go get)來安裝這些庫。2 導入依賴庫:在 Go 項目中導入你選擇的 PDF 轉換庫,並確保正確地導入了所有需要的依賴項。3 加載 PDF 文件 ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:952 ARCHIVED:71540 CACHE:2397 FOLLOWERS:15 FOLLOWING:14
cum catano!
🧮 USERS:1 FEEDS:2 TWTS:951 ARCHIVED:71520 CACHE:2391 FOLLOWERS:15 FOLLOWING:14
[47°09′49″S, 126°43′46″W] Reading: 1.95 Sv
🧮 USERS:1 FEEDS:2 TWTS:950 ARCHIVED:71504 CACHE:2381 FOLLOWERS:15 FOLLOWING:14
[47°09′13″S, 126°43′21″W] Reading: 1.86000 PPM
Go 1-22 的新增功能系列之一:cmp-Or
截至撰寫本文時,Go 1.22 已經發布幾個月了。早就該結束我爲 1.22 所做的工作的系列了。抱歉耽擱了這麼久,我最近忙於生活事務。如果您錯過了我關於 reflect.TypeFor(https://blog.carlana.net/post/2024/golang-reflect-type-for/) 和 slices.Concat(https://blog.carlana.net/post/ ⌘ Read more
使用 GitHub Actions 構建 Golang PGO
今年 2 月,我宣佈 Dolt 版本現已構建爲配置文件引導優化 (pgo) 二進制文件,利用 Golang 1.20 的強大功能將 Dolt 的讀取性能提高 5.3%。在我宣佈這一消息之前,我們的一位常駐 Golang 專家 Zach 試驗並測試了 Golang 的 pgo 功能,並寫下了他在使用 Dolt 構建後觀察到的性能提升,該配置文件首先針對 Dolt 運行我們的 Sysbench 基準測 ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:949 ARCHIVED:71497 CACHE:2386 FOLLOWERS:15 FOLLOWING:14
How Katalyst guarantees memory QoS for colocated applications
Member post originally published on Katalyst’s blog In the previous post[1], we introduced Katalyst – a QoS-based resource management system that helps ByteDance improve resource efficiency through colocation of online and offline workloads. In the colocation scenario, memory… ⌘ Read more
Beta 3 of iOS 17.5, macOS Sonoma 14.5, iPadOS 17.5, Available for Testing
Apple has issued the third beta versions of iOS 17.5, macOS Sonoma 14.5, iPadOS 17.5, watchOS 10.5, visionOS 1.2, and tvOS 17.5, to all users participating in the beta testing programs for Apple system software. The new beta builds are available to both developer beta and public beta testers on any actively enrolled device, though … [Read More](https://osxdaily.com/2024/04/24/beta-3-of-ios- … ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:948 ARCHIVED:71484 CACHE:2387 FOLLOWERS:15 FOLLOWING:14
Golang 異步編程方式和技巧
Golang 基於多線程、協程實現,與生俱來適合異步編程,當我們遇到那種需要批量處理且耗時的操作時,傳統的線性執行就顯得喫力,這時就會想到異步並行處理。下面介紹一些異步編程方式和技巧。作者:zvalhu一、使用方式1.1、最簡單的最常用的方式:使用 go 關鍵詞func main() { go func() { fmt.Println(“hello world1”) }() go func( ⌘ Read more
從零到生產:Go 在 Google 的歷程 [譯]
2007 年 Go 誕生於 Google,2009 年 Google 正式對外宣佈了 Go 語言的開源!時至今日,距離 Go 開源已經過去了近 15 個年頭了 [1]!Go 在 Google 公司內部究竟是怎樣的一個狀態呢?前 Google 員工 Yves Junqueira 近期撰文從其個人所見所聞談了 Go 在 Google 的歷程 [2]!這裏簡單翻譯,供大家參考! 最近,Jeremy Ma ⌘ Read more
🧮 USERS:1 FEEDS:2 TWTS:947 ARCHIVED:71464 CACHE:2392 FOLLOWERS:15 FOLLOWING:14
[47°09′01″S, 126°43′12″W] Reading: 1.76 Sv
🧮 USERS:1 FEEDS:2 TWTS:946 ARCHIVED:71458 CACHE:2406 FOLLOWERS:15 FOLLOWING:14
🧮 USERS:1 FEEDS:2 TWTS:945 ARCHIVED:71398 CACHE:2368 FOLLOWERS:15 FOLLOWING:14
🧮 USERS:1 FEEDS:2 TWTS:944 ARCHIVED:71348 CACHE:2369 FOLLOWERS:15 FOLLOWING:14
Been clearing out my pod a bit and blocking unwanted domains that are basically either a) just noise and/or b) are just 1-way (whose authors never reply or are otherwise unaware of the larger ecosystem)
Let me know if y’all have any other candidates you’d like me to add to the blocked domain list?
🧮 USERS:1 FEEDS:2 TWTS:943 ARCHIVED:71337 CACHE:2359 FOLLOWERS:15 FOLLOWING:14