1<!doctype html> 2<html class="no-js" lang="en-US"> 3<head> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1"> 6<meta name="theme-color" content="#ffffff"> 7<link rel="profile" href="https://gmpg.org/xfn/11"> 8 9<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 10<link rel="alternate" href="https://opensource.hk/category/open-source-news/" hreflang="en" /> 11<link rel="alternate" href="https://opensource.hk/zh/category/%e9%96%8b%e6%ba%90%e6%96%b0%e7%9f%a5/" hreflang="zh" /> 12 13 <!-- This site is optimized with the Yoast SEO plugin v28.6 - https://yoast.com/product/yoast-seo-wordpress/ --> 14 <title>Open Source News Archives - Open Source Hong Kong</title> 15 <link rel="canonical" href="https://opensource.hk/category/open-source-news/" /> 16 <link rel="next" href="https://opensource.hk/category/open-source-news/page/2/" /> 17 <meta property="og:locale" content="en_US" /> 18 <meta property="og:locale:alternate" content="zh_HK" /> 19 <meta property="og:type" content="article" /> 20 <meta property="og:title" content="Open Source News Archives - Open Source Hong Kong" /> 21 <meta property="og:url" content="https://opensource.hk/category/open-source-news/" /> 22 <meta property="og:site_name" content="Open Source Hong Kong" /> 23 <meta property="og:image" content="https://opensource.hk/wp-content/uploads/2020/08/1040-x-570-oshk-featured-img.jpg" /> 24 <meta property="og:image:width" content="1040" /> 25 <meta property="og:image:height" content="570" /> 26 <meta property="og:image:type" content="image/jpeg" /> 27 <meta name="twitter:card" content="summary_large_image" /> 28 <meta name="twitter:site" content="@opensourcehk" /> 29
29<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"CollectionPage","@id":"https:\/\/opensource.hk\/category\/open-source-news\/","url":"https:\/\/opensource.hk\/category\/open-source-news\/","name":"Open Source News Archives - Open Source Hong Kong","isPartOf":{"@id":"https:\/\/opensource.hk\/#website"},"primaryImageOfPage":{"@id":"https:\/\/opensource.hk\/category\/open-source-news\/#primaryimage"},"image":{"@id":"https:\/\/opensource.hk\/category\/open-source-news\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.hk\/wp-content\/uploads\/2024\/07\/COSCUP-2024-1.jpg","breadcrumb":{"@id":"https:\/\/opensource.hk\/category\/open-source-news\/#breadcrumb"},"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.hk\/category\/open-source-news\/#primaryimage","url":"https:\/\/opensource.hk\/wp-content\/uploads\/2024\/07\/COSCUP-2024-1.jpg","contentUrl":"https:\/\/opensource.hk\/wp-content\/uploads\/2024\/07\/COSCUP-2024-1.jpg","width":1040,"height":570},{"@type":"BreadcrumbList","@id":"https:\/\/opensource.hk\/category\/open-source-news\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/opensource.hk\/"},{"@type":"ListItem","position":2,"name":"Open Source News"}]},{"@type":"WebSite","@id":"https:\/\/opensource.hk\/#website","url":"https:\/\/opensource.hk\/","name":"Open Source Hong Kong","description":"Develop, Contribute, Promote, Use","publisher":{"@id":"https:\/\/opensource.hk\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/opensource.hk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/opensource.hk\/#organization","name":"Open Source Hong Kong","url":"https:\/\/opensource.hk\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.hk\/#\/schema\/logo\/image\/","url":"https:\/\/opensource.hk\/wp-content\/uploads\/2015\/09\/cropped-OSHK-square-logo-1.png","contentUrl":"https:\/\/opensource.hk\/wp-content\/uploads\/2015\/09\/cropped-OSHK-square-logo-1.png","width":512,"height":512,"caption":"Open Source Hong Kong"},"image":{"@id":"https:\/\/opensource.hk\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/opensourcehk","https:\/\/x.com\/opensourcehk","https:\/\/www.linkedin.com\/company\/opensourcehk\/","https:\/\/www.youtube.com\/channel\/UCm0wh7teyJywvyL0vPgiOyw"]}]}</script>
29 30 <!-- / Yoast SEO plugin. --> 31 32 33<link rel='dns-prefetch' href='//fonts.googleapis.com' /> 34<link href='https://fonts.googleapis.com' rel='preconnect' /> 35<link href='https://fonts.gstatic.com' crossorigin='anonymous' rel='preconnect' /> 36<link rel="alternate" type="application/rss+xml" title="Open Source Hong Kong » Feed" href="https://opensource.hk/feed/" /> 37<link rel="alternate" type="application/rss+xml" title="Open Source Hong Kong » Comments Feed" href="https://opensource.hk/comments/feed/" /> 38<link rel="alternate" type="application/rss+xml" title="Open Source Hong Kong » Open Source News Category Feed" href="https://opensource.hk/category/open-source-news/feed/" /> 39<style id="wp-img-auto-sizes-contain-inline-css"> 40img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 41/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 42</style> 43<style id="wp-emoji-styles-inline-css"> 44 45 img.wp-smiley, img.emoji { 46 display: inline !important; 47 border: none !important; 48 box-shadow: none !important; 49 height: 1em !important; 50 width: 1em !important; 51 margin: 0 0.07em !important; 52 vertical-align: -0.1em !important; 53 background: none !important; 54 padding: 0 !important; 55 } 56/*# sourceURL=wp-emoji-styles-inline-css */ 57</style> 58<style id="wp-block-library-inline-css"> 59:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
59--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 60 61/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 62</style> 63<style id="wp-block-heading-inline-css"> 64h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg} 65/*# sourceURL=https://opensource.hk/wp-includes/blocks/heading/style.min.css */ 66</style> 67<style id="wp-block-paragraph-inline-css"> 68.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
69/*# sourceURL=https://opensource.hk/wp-includes/blocks/paragraph/style.min.css */ 70</style> 71<style id="wp-block-social-links-inline-css"> 72.wp-block-social-links{background:none;box-sizing:border-box;margin-left:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block}@media not (prefers-reduced-motion){.wp-block-social-link{transition:transform .1s ease}}.wp-block-social-link{height:auto}.wp-block-social-link a{align-items:center;display:flex;line-height:0}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link.wp-social-link{display:inline-block;margin:0;padding:0}.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link{background-color:#f0f0f0;color:#444}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-amazon{background-color:#f90;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-behance{background-color:#0757fe;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bluesky{background-color:#0a7aff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-discord{background-color:#5865f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-etsy{background-color:#f45800;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-facebook{background-color:#0866ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-flickr{background-color:#0461dd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-foursquare{background-color:#e65678;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-github{background-color:#24292d;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-google{background-color:#ea4434;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-gravatar{background-color:#1d4fc4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-instagram{background-color:#f00075;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-medium{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-meetup{background-color:#f6405f;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-patreon{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pinterest{background-color:#e60122;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pocket{background-color:#ef4155;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-reddit{background-color:#ff4500;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-skype{background-color:#0478d7;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-spotify{background-color:#1bd760;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-telegram{background-color:#2aabee;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-threads{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tiktok{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tumblr{background-color:#011835;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitch{background-color:#6440a4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vk{background-color:#4680c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-x{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-yelp{background-color:#d32422;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-youtube{background-color:red;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link{background:none}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link svg{height:1.25em;width:1.25em}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-amazon{color:#f90}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bandcamp{color:#1ea0c3}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-behance{color:#0757fe}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bluesky{color:#0a7aff}
72:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-codepen{color:#1e1f26}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-deviantart{color:#02e49b}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-discord{color:#5865f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dribbble{color:#e94c89}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dropbox{color:#4280ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-etsy{color:#f45800}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-facebook{color:#0866ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-fivehundredpx{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-flickr{color:#0461dd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-foursquare{color:#e65678}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-github{color:#24292d}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-goodreads{color:#382110}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-google{color:#ea4434}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-gravatar{color:#1d4fc4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-instagram{color:#f00075}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-lastfm{color:#e21b24}
72:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-linkedin{color:#0d66c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-mastodon{color:#3288d4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-medium{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-meetup{color:#f6405f}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-patreon{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pinterest{color:#e60122}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pocket{color:#ef4155}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-reddit{color:#ff4500}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-skype{color:#0478d7}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-soundcloud{color:#ff5600}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-spotify{color:#1bd760}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-telegram{color:#2aabee}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-threads{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tiktok{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tumblr{color:#011835}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitch{color:#6440a4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitter{color:#1da1f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vimeo{color:#1eb7ea}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vk{color:#4680c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-whatsapp{color:#25d366}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-wordpress{color:#3499cd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-x{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-yelp{color:#d32422}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}:root :where(.wp-block-social-links .wp-social-link a){padding:.25em}:root :where(.wp-block-social-links.is-style-logos-only .wp-social-link a){padding:0}:root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link a){padding-left:.6666666667em;padding-right:.6666666667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000} 73/*# sourceURL=https://opensource.hk/wp-includes/blocks/social-links/style.min.css */ 74</style> 75 76<style id="classic-theme-styles-inline-css"> 77/*! This file is auto-generated */ 78.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 79/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 80</style> 81 82<style id="global-styles-inline-css"> 83:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
830) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
83.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 84/*# sourceURL=global-styles-inline-css */ 85</style> 86 87<link rel='stylesheet' id='sparkling-bootstrap-css' href='https://opensource.hk/wp-content/themes/sparkling/assets/css/bootstrap.min.css?ver=3.4.1' media='all' /> 88<link rel='stylesheet' id='sparkling-icons-css' href='https://opensource.hk/wp-content/themes/sparkling/assets/css/fontawesome/subset/fontawesome-subset.min.css?ver=7.3.1' media='all' /> 89<link rel='stylesheet' id='sparkling-fonts-css' href='https://fonts.googleapis.com/css?family=Open+Sans:400italic,400,600,700%7CRoboto+Slab:400,300,700&display=swap' media='all' /> 90<link rel='stylesheet' id='sparkling-style-css' href='https://opensource.hk/wp-content/themes/sparkling/style.css?ver=2.6.11' media='all' /> 91<link rel='stylesheet' id='academicons-css-css' href='https://opensource.hk/wp-content/themes/sparkling/assets/css/academicons.min.css?ver=1.8.6' media='all' />
92<script id="jquery-core-js" src="https://opensource.hk/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 92
92
93<script id="jquery-migrate-js" src="https://opensource.hk/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
93 94<link rel="https://api.w.org/" href="https://opensource.hk/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://opensource.hk/wp-json/wp/v2/categories/1" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://opensource.hk/xmlrpc.php?rsd" /> 95<meta name="generator" content="WordPress 7.1.2" /> 96<style type="text/css">a, #infinite-handle span, #secondary .widget .post-content a, .entry-meta a {color:#289dcc}.btn-default, .label-default, .flex-caption h2, .btn.btn-default.read-more,button, 97 .navigation .wp-pagenavi-pagination span.current,.navigation .wp-pagenavi-pagination a:hover, 98 .woocommerce a.button, .woocommerce button.button, 99 .woocommerce input.button, .woocommerce #respond input#submit.alt, 100 .woocommerce a.button, .woocommerce button.button, 101 .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt { background-color: #289dcc; border-color: #289dcc;}.site-main [class*="navigation"] a, .more-link, .pagination>li>a, .pagination>li>span, .cfa-button { color: #289dcc}.cfa-button {border-color: #289dcc;}.cfa-text { color: #289dcc;}.cfa-button {border-color: #289dcc; color: #289dcc;}.navbar.navbar-default, .navbar-default .navbar-nav .open .dropdown-menu > li > a {background-color: #ffffff;}.navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav.sparkling-mobile-menu > li:hover > a, .navbar-default .navbar-nav.sparkling-mobile-menu > li:hover > .caret, .navbar-default .navbar-nav > li, .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { color: #363636;}@media (max-width: 767px){ .navbar-default .navbar-nav > li:hover > a, .navbar-default .navbar-nav > li:hover > .caret{ color: #363636!important ;} }.navbar-default .navbar-nav > li:hover > a, .navbar-default .navbar-nav > li:focus-within > a, .navbar-nav > li:hover > .caret, .navbar-nav > li:focus-within > .caret, .navbar-default .navbar-nav.sparkling-mobile-menu > li.open > a, .navbar-default .navbar-nav.sparkling-mobile-menu > li.open > .caret, .navbar-default .navbar-nav > li:hover, .navbar-default .navbar-nav > li:focus-within, .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > .caret, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus, .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus, .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus {color: #289dcc;}@media (max-width: 767px){ .navbar-default .navbar-nav > li.open > a, .navbar-default .navbar-nav > li.open > .caret { color: #289dcc !important; } }.dropdown-menu {background-color: #ffffff;}.navbar-default .navbar-nav .dropdown-menu > li:hover, .navbar-default .navbar-nav .dropdown-menu > li:focus-within, .dropdown-menu > .active {background-color: #289dcc;}@media (max-width: 767px) {.navbar-default .navbar-nav .dropdown-menu > li:hover, .navbar-default .navbar-nav .dropdown-menu > li:focus, .dropdown-menu > .active {background: transparent;} }.entry-content {font-size:16px}</style> <style type="text/css"> 102 .navbar > .container .navbar-brand { 103 color: #dadada; 104 } 105 </style> 106 <link rel="icon" href="https://opensource.hk/wp-content/uploads/2015/09/cropped-OSHK-square-logo-1-32x32.png" sizes="32x32" /> 107<link rel="icon" href="https://opensource.hk/wp-content/uploads/2015/09/cropped-OSHK-square-logo-1-192x192.png" sizes="192x192" /> 108<link rel="apple-touch-icon" href="https://opensource.hk/wp-content/uploads/2015/09/cropped-OSHK-square-logo-1-180x180.png" /> 109<meta name="msapplication-TileImage" content="https://opensource.hk/wp-content/uploads/2015/09/cropped-OSHK-square-logo-1-270x270.png" /> 110<style id="wp-custom-css"> 111h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { 112 color: #289dcc; 113 font-weight: 700; 114 font-family: 'Roboto Slab', "Microsoft JhengHei", serif; 115} 116 117</style> 118 119</head> 120 121<body class="archive category category-open-source-news category-1 wp-embed-responsive wp-theme-sparkling group-blog"> 122 <a class="sr-only sr-only-focusable" href="#content">Skip to main content</a> 123<div id="page" class="hfeed site"> 124 125 <header id="masthead" class="site-header" role="banner"> 126 <nav class="navbar navbar-default 127 navbar-fixed-top" role="navigation"> 128 <div class="container"> 129 <div class="row"> 130 <div class="site-navigation-inner col-sm-12"> 131 <div class="navbar-header"> 132 133 134 <div id="logo"> 135 <a href="https://opensource.hk/"><img src="https://opensource.hk/wp-content/uploads/2020/10/cropped-OSHK-Logo-temp.png" height="50" width="220" alt="Open Source Hong Kong"/></a> 136 </div><!-- end of #logo --> 137 138 <button type="button" class="btn navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"> 139 <span class="sr-only">Toggle navigation</span> 140 <span class="icon-bar"></span> 141 <span class="icon-bar"></span> 142 <span class="icon-bar"></span> 143 </button> 144 </div> 145 146 147 148 <div class="collapse navbar-collapse navbar-ex1-collapse"><ul id="menu-%e4%b8%ad%e6%96%87%e9%81%b8%e5%96%ae" class="nav navbar-nav"><li id="menu-item-1251-zh" class="lang-item lang-item-147 lang-item-zh lang-item-first menu-item menu-item-type-custom menu-item-object-custom menu-item-1251-zh"><a href="https://opensource.hk/zh/category/%e9%96%8b%e6%ba%90%e6%96%b0%e7%9f%a5/" lang="zh-HK" hreflang="zh-HK"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAMAAABBPP0LAAAAS1BMVEXqAADjAADZAAD2e3v0dXXzbGzyYWHxWFjyUlLuSkrQAAD5jY76m5zsPz/qNTXnKir56en6w8PmGxvKAAD5z9D6qqvjDw/32dnCAADqlhvuAAAAYElEQVR4AQXBUU6DUBRAwTm8SwqJ+9+m8cva0uBMgBBkkUiqYSWrkpeNxL6/76w5R/L1WZ9jXoONqvs5fWeyrGWux9i3Na5ji3Ftfv/uIZtG+8/78TxA7Skj4qxwcNrBPxiAEpMq30QZAAAAAElFTkSuQmCC" alt="" width="16" height="11" style="width: 16px; height: 11px;" /><span style="margin-left:0.3em;">䏿 (馿¸¯)</span></a></li> 149<li id="menu-item-1257" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1257 dropdown"><a href="https://opensource.hk/zh/%e9%97%9c%e6%96%bc%e6%9c%ac%e6%9c%83/">éæ¼æ¬æ</a><a class="sparkling-dropdown caret" href="#"></a> 150<ul role="menu" class=" dropdown-menu"> 151 <li id="menu-item-1256" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1256"><a href="https://opensource.hk/zh/%e5%9f%b7%e8%a1%8c%e5%a7%94%e5%93%a1%e6%9c%83/">å·è¡å§å¡æ</a></li> 152 <li id="menu-item-5144" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5144"><a href="https://opensource.hk/zh/%e9%97%9c%e6%96%bc-soosu/">éæ¼ Soosu</a></li> 153 <li id="menu-item-1683" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1683"><a href="https://opensource.hk/zh/%e6%9c%83%e5%93%a1%e5%88%b6%e5%ba%a6/">æå¡å¶åº¦</a></li> 154 <li id="menu-item-1745" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1745"><a href="https://opensource.hk/zh/%e8%a1%8c%e7%82%ba%e6%ba%96%e5%89%87/">è¡çºæºå</a></li> 155 <li id="menu-item-2844" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2844"><a href="https://opensource.hk/zh/%e5%82%b3%e5%aa%92%e5%a0%b1%e5%b0%8e/">å³åªå ±å°</a></li> 156 <li id="menu-item-1744" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1744"><a href="https://opensource.hk/zh/%e5%93%81%e7%89%8c%e8%a6%8f%e7%af%84/">åçè¦ç¯</a></li> 157 <li id="menu-item-1773" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1773"><a href="https://opensource.hk/zh/%e7%94%9a%e9%ba%bc%e6%98%af%e9%96%8b%e6%94%be%e6%ba%90%e7%a2%bc%ef%bc%9f/">ç麼æ¯éæ¾æºç¢¼ï¼</a></li> 158</ul> 159</li> 160<li id="menu-item-4496" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4496"><a href="https://opensource.hk/zh/%e6%97%a5%e6%9b%86/">éæºæ´»åæ¥èª</a></li> 161<li id="menu-item-1748" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1748 dropdown"><a href="https://opensource.hk/zh/%e6%b4%bb%e5%8b%95/">æ´»å</a><a class="sparkling-dropdown caret" href="#"></a> 162<ul role="menu" class=" dropdown-menu"> 163 <li id="menu-item-1693" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1693"><a href="https://opensource.hk/zh/%e6%9c%83%e5%93%a1%e8%81%9a%e6%9c%83/">æå¡èæ</a></li> 164 <li id="menu-item-1689" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1689"><a href="https://opensource.hk/zh/%e6%94%af%e6%8c%81%e6%b4%bb%e5%8b%95/">æ¯ææ´»å</a></li> 165 <li id="menu-item-2865" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2865"><a href="https://opensource.hk/zh/%e6%b5%b7%e5%a4%96%e4%ba%a4%e6%b5%81/">æµ·å¤äº¤æµ</a></li> 166 <li id="menu-item-1686" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1686 dropdown"><a href="https://opensource.hk/zh/%e6%9c%83%e8%ad%b0/">æè°</a><a class="sparkling-dropdown caret" href="#"></a> 167 <ul role="menu" class=" dropdown-menu"> 168 <li id="menu-item-1790" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1790"><a href="https://pycon.hk/">PyCon 馿¸¯</a></li> 169 <li id="menu-item-4605" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-4605"><a href="https://opensource.hk/zh/category/%e6%b4%bb%e5%8b%95/%e9%a6%99%e6%b8%af%e9%96%8b%e6%ba%90%e5%b9%b4%e6%9c%83/">馿¸¯éæºå¹´æ</a></li> 170 </ul> 171</li> 172 <li id="menu-item-1690" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1690"><a href="https://opensource.hk/zh/%e7%89%b9%e5%82%99%e6%b4%bb%e5%8b%95/">ç¹åæ´»å</a></li> 173 <li id="menu-item-1688" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1688 dropdown"><a href="https://opensource.hk/zh/%e9%96%8b%e6%94%be%e6%95%b8%e6%93%9a%e6%b4%bb%e5%8b%95/">éæ¾æ¸ææ´»å</a><a class="sparkling-dropdown caret" href="#"></a> 174 <ul role="menu" class=" dropdown-menu"> 175 <li id="menu-item-1323" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1323"><a href="https://opensource.hk/tag/opendata/">éæ¾æ¸ææ´æ°</a></li> 176 </ul> 177</li> 178 <li id="menu-item-1692" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1692"><a href="https://opensource.hk/zh/%e5%b7%a5%e4%bd%9c%e5%9d%8a/">å·¥ä½å</a></li> 179 <li id="menu-item-1691" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1691"><a href="https://opensource.hk/zh/%e9%bb%91%e5%ae%a2%e6%9d%be/">é»å®¢æ¾</a></li> 180</ul> 181</li> 182<li id="menu-item-1752" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1752 dropdown"><a href="https://opensource.hk/zh/%e5%b0%88%e6%a1%88/">å°æ¡</a><a class="sparkling-dropdown caret" href="#"></a> 183<ul role="menu" class=" dropdown-menu"> 184 <li id="menu-item-1317" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1317"><a href="https://commonvoice.mozilla.org/zh-HK">Common Voice</a></li> 185 <li id="menu-item-1315" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-1315 dropdown"><a href="https://freehkfonts.opensource.hk/">èªç±é¦æ¸¯åå</a><a class="sparkling-dropdown caret" href="#"></a> 186 <ul role="menu" class=" dropdown-menu"> 187 <li id="menu-item-1316" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1316"><a href="https://kaidemo.opensource.hk/">ç¶²ä¸å±ç¤º</a></li> 188 </ul> 189</li> 190 <li id="menu-item-1743" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1743"><a href="https://opensource.hk/zh/%e5%89%b5%e6%a5%ad%e5%8a%a0%e9%80%9f%e5%99%a8/">嵿¥å éå¨</a></li> 191 <li id="menu-item-1327" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-1327"><a href="https://opensource.hk/zh/program-for-youth/">馿¸¯éæºéå¹´è¨å</a></li> 192 <li id="menu-item-1735" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1735"><a href="https://opensource.hk/zh/%e6%b4%bb%e5%8b%95%e7%ae%a1%e7%90%86%e6%96%b9%e6%a1%88/">æ´»åç®¡çæ¹æ¡</a></li> 193</ul> 194</li> 195<li id="menu-item-1751" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1751 dropdown"><a href="https://opensource.hk/zh/%e5%8f%83%e8%88%87/">å å ¥æå</a><a class="sparkling-dropdown caret" href="#"></a> 196<ul role="menu" class=" dropdown-menu"> 197 <li id="menu-item-5438" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5438"><a href="https://opensource.hk/zh/call-for-speakers-zh/">å¾µæ±è¬è </a></li> 198 <li id="menu-item-5418" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5418"><a href="https://opensource.hk/zh/call-for-volunteers-zh/">æåå¿é¡è </a></li> 199</ul> 200</li> 201<li id="menu-item-5405" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5405"><a href="https://discourse.opensource.hk">è«å£</a></li> 202</ul></div> 203 204 205 </div>
206 </div> 207 </div> 208 </nav><!-- .site-navigation --> 209 </header><!-- #masthead --> 210 211 <div id="content" class="site-content"> 212 213 <div class="top-section"> 214 </div> 215 216 <div class="container main-content-area"> 217 <div class="row side-pull-left"> 218 <div class="main-content-inner col-sm-12 col-md-8"> 219 220 <div id="primary" class="content-area"> 221 <main id="main" class="site-main" role="main"> 222 223 224 <header class="page-header"> 225 <h1 class="page-title">Category: <span>Open Source News</span></h1> </header><!-- .page-header --> 226 227 228<article id="post-4926" class="post-4926 post type-post status-publish format-standard has-post-thumbnail hentry category-open-source-news category-overseas"> 229 <div class="blog-item-wrap"> 230 <a href="https://opensource.hk/open-source-hong-kong-expedition-to-coscup-2024/" title="Open Source Hong Kong Expedition to COSCUP 2024!" > 231 <img width="750" height="410" src="https://opensource.hk/wp-content/uploads/2024/07/COSCUP-2024-1-750x410.jpg" class="single-featured wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://opensource.hk/wp-content/uploads/2024/07/COSCUP-2024-1-750x410.jpg 750w, https://opensource.hk/wp-content/uploads/2024/07/COSCUP-2024-1-300x164.jpg 300w, https://opensource.hk/wp-content/uploads/2024/07/COSCUP-2024-1-1024x561.jpg 1024w, https://opensource.hk/wp-content/uploads/2024/07/COSCUP-2024-1-768x421.jpg 768w, https://opensource.hk/wp-content/uploads/2024/07/COSCUP-2024-1.jpg 1040w" sizes="(max-width: 750px) 100vw, 750px" /> </a> 232 <div class="post-inner-content"> 233 <header class="entry-header page-header"> 234 235 <h2 class="entry-title"><a href="https://opensource.hk/open-source-hong-kong-expedition-to-coscup-2024/" rel="bookmark">Open Source Hong Kong Expedition to COSCUP 2024!</a></h2> 236 237 <div class="entry-meta"> 238 <span class="posted-on"><i class="fa fa-calendar-alt"></i> <a href="https://opensource.hk/open-source-hong-kong-expedition-to-coscup-2024/" rel="bookmark"><time class="entry-date published" datetime="2024-08-03T12:46:47+08:00">August 3, 2024</time><time class="updated" datetime="2024-10-25T09:57:53+08:00">October 25, 2024</time></a></span><span class="byline"> <i class="fa fa-user"></i> <span class="author vcard"><a class="url fn n" href="https://opensource.hk/author/daisyfung/">Daisy Maris Fung</a></span></span> <span class="comments-link"><i class="fa fa-comments"></i><a href="https://opensource.hk/open-source-hong-kong-expedition-to-coscup-2024/#respond">Leave a comment</a></span> 239 240 241 </div><!-- .entry-meta --> 242 </header><!-- .entry-header --> 243 244 <div class="entry-content"> 245 246 <p>Join us at the National Taiwan University of Science and Technology (NTUST) in Taipei on August 3-4 for COSCUP 2024! We’re excited to team up with PyCon HK and our adorable mascot, Soosu. Visit us at TR312 Booth C6 and embrace the spirit of Open Source in Hong Kong. See you there! Open Source Hong […]</p> 247 <p><a class="btn btn-default read-more" href="https://opensource.hk/open-source-hong-kong-expedition-to-coscup-2024/" title="Open Source Hong Kong Expedition to COSCUP 2024!">Read More</a></p> 248 249 </div><!-- .entry-content --> 250 </div> 251 </div> 252</article><!-- #post-## --> 253 254<article id="post-933" class="post-933 post type-post status-publish format-standard has-post-thumbnail hentry category-open-source-news tag-blockchain"> 255 <div class="blog-item-wrap"> 256 <a href="https://opensource.hk/rise-2018-interledger-js-and-ethereum/" title="RISE 2018: interledger.js and Ethereum" > 257 <img width="547" height="410" src="https://opensource.hk/wp-content/uploads/2018/07/rise2018-sammy.jpg" class="single-featured wp-post-image" alt="" decoding="async" srcset="https://opensource.hk/wp-content/uploads/2018/07/rise2018-sammy.jpg 1024w, https://opensource.hk/wp-content/uploads/2018/07/rise2018-sammy-300x225.jpg 300w, https://opensource.hk/wp-content/uploads/2018/07/rise2018-sammy-768x576.jpg 768w" sizes="(max-width: 547px) 100vw, 547px" /> </a> 258 <div class="post-inner-content"> 259 <header class="entry-header page-header"> 260 261 <h2 class="entry-title"><a href="https://opensource.hk/rise-2018-interledger-js-and-ethereum/" rel="bookmark">RISE 2018: interledger.js and Ethereum</a></h2> 262 263 <div class="entry-meta"> 264 <span class="posted-on"><i class="fa fa-calendar-alt"></i> <a href="https://opensource.hk/rise-2018-interledger-js-and-ethereum/" rel="bookmark"><time class="entry-date published" datetime="2018-07-11T23:12:20+08:00">July 11, 2018</time><time class="updated" datetime="2020-10-31T17:07:57+08:00">October 31, 2020</time></a></span><span class="byline"> <i class="fa fa-user"></i> <span class="author vcard"><a class="url fn n" href="https://opensource.hk/author/sammyfung/">Sammy Fung</a></span></span> 265 266 </div><!-- .entry-meta --> 267 </header><!-- .entry-header --> 268 269 <div class="entry-content"> 270 271 <p>RISE 2018 is Web Summitâs Asia tech event with over 15,000 registrations, it continues to RISE to great heights in Hong Kong. RISE provides hundred free tickets to open source developer community this year who contributes source codes on GitHub platform. interledger.js – open source javascript interconnecting ledgers Its FullSTK + Binate.io stage should be […]</p> 272 <p><a class="btn btn-default read-more" href="https://opensource.hk/rise-2018-interledger-js-and-ethereum/" title="RISE 2018: interledger.js and Ethereum">Read More</a></p> 273 274 </div><!-- .entry-content --> 275 </div> 276 </div> 277</article><!-- #post-## --> 278 279<article id="post-914" class="post-914 post type-post status-publish format-standard has-post-thumbnail hentry category-open-source-news tag-blender"> 280 <div class="blog-item-wrap"> 281 <a href="https://opensource.hk/blender-3d-creation/" title="Blender: Free and Open 3D Creation Software" > 282 <img width="750" height="410" src="https://opensource.hk/wp-content/uploads/2018/04/blender-website-front.jpg" class="single-featured wp-post-image" alt="" decoding="async" srcset="https://opensource.hk/wp-content/uploads/2018/04/blender-website-front.jpg 2560w, https://opensource.hk/wp-content/uploads/2018/04/blender-website-front-300x164.jpg 300w, https://opensource.hk/wp-content/uploads/2018/04/blender-website-front-768x419.jpg 768w, https://opensource.hk/wp-content/uploads/2018/04/blender-website-front-1024x559.jpg 1024w" sizes="(max-width: 750px) 100v
282w, 750px" /> </a> 283 <div class="post-inner-content"> 284 <header class="entry-header page-header"> 285 286 <h2 class="entry-title"><a href="https://opensource.hk/blender-3d-creation/" rel="bookmark">Blender: Free and Open 3D Creation Software</a></h2> 287 288 <div class="entry-meta"> 289 <span class="posted-on"><i class="fa fa-calendar-alt"></i> <a href="https://opensource.hk/blender-3d-creation/" rel="bookmark"><time class="entry-date published" datetime="2018-04-11T13:39:18+08:00">April 11, 2018</time><time class="updated" datetime="2020-10-31T17:08:21+08:00">October 31, 2020</time></a></span><span class="byline"> <i class="fa fa-user"></i> <span class="author vcard"><a class="url fn n" href="https://opensource.hk/author/annleung/">Ann Leung</a></span></span> 290 291 </div><!-- .entry-meta --> 292 </header><!-- .entry-header --> 293 294 <div class="entry-content"> 295 296 <p>Blender is one of the Free-Open- Source-Software for 3D Computer Graphics production and multimedia creation listed as an Open-Source- MultiMedia software inventory. It is originally co- founded by Ton Roosendaal in 1988 as an in-house tool and became free and open since 2002 backed by its Dutch based Blender Foundation. Blender is now taken care […]</p> 297 <p><a class="btn btn-default read-more" href="https://opensource.hk/blender-3d-creation/" title="Blender: Free and Open 3D Creation Software">Read More</a></p> 298 299 </div><!-- .entry-content --> 300 </div> 301 </div> 302</article><!-- #post-## --> 303 304<article id="post-793" class="post-793 post type-post status-publish format-standard has-post-thumbnail hentry category-open-source-news tag-raspberrypi"> 305 <div class="blog-item-wrap"> 306 <a href="https://opensource.hk/raspberry-pi-3-model-b/" title="Raspberry Pi 3 Model B+" > 307 <img width="462" height="322" src="https://opensource.hk/wp-content/uploads/2018/03/RaspberryPi3B.jpg" class="single-featured wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://opensource.hk/wp-content/uploads/2018/03/RaspberryPi3B.jpg 462w, https://opensource.hk/wp-content/uploads/2018/03/RaspberryPi3B-300x209.jpg 300w, https://opensource.hk/wp-content/uploads/2018/03/RaspberryPi3B-392x272.jpg 392w, https://opensource.hk/wp-content/uploads/2018/03/RaspberryPi3B-130x90.jpg 130w" sizes="auto, (max-width: 462px) 100vw, 462px" /> </a> 308 <div class="post-inner-content"> 309 <header class="entry-header page-header"> 310 311 <h2 class="entry-title"><a href="https://opensource.hk/raspberry-pi-3-model-b/" rel="bookmark">Raspberry Pi 3 Model B+</a></h2> 312 313 <div class="entry-meta"> 314 <span class="posted-on"><i class="fa fa-calendar-alt"></i> <a href="https://opensource.hk/raspberry-pi-3-model-b/" rel="bookmark"><time class="entry-date published" datetime="2018-03-26T18:14:45+08:00">March 26, 2018</time><time class="updated" datetime="2020-10-22T20:30:25+08:00">October 22, 2020</time></a></span><span class="byline"> <i class="fa fa-user"></i> <span class="author vcard"><a class="url fn n" href="https://opensource.hk/author/sammyfung/">Sammy Fung</a></span></span> <span class="comments-link"><i class="fa fa-comments"></i><a href="https://opensource.hk/raspberry-pi-3-model-b/#respond">Leave a comment</a></span> 315 316 317 </div><!-- .entry-meta --> 318 </header><!-- .entry-header --> 319 320 <div class="entry-content"> 321 322 <p>Raspberry Pi 3 Model B+ is now available. It is featuring a 1.4GHz 64-bit quad-core CPU, dual-band 802.11ac wireless LAN, faster Ethernet, Power-over-Ethernet, and much more. Raspberry Pi 3 Model B+ is improved version of Raspberry Pi 3 Model B which is released 2 years ago. It is first model with 802.11ac Wifi, Gigabit Ethernet, […]</p> 323 <p><a class="btn btn-default read-more" href="https://opensource.hk/raspberry-pi-3-model-b/" title="Raspberry Pi 3 Model B+">Read More</a></p> 324 325 </div><!-- .entry-content --> 326 </div> 327 </div> 328</article><!-- #post-## --> 329 330<article id="post-789" class="post-789 post type-post status-publish format-standard has-post-thumbnail hentry category-open-source-news tag-ssl"> 331 <div class="blog-item-wrap"> 332 <a href="https://opensource.hk/letsencrypt-now-supports-acmev2-wildcard-certificates/" title="Let’s Encrypt now supports ACME v2 and wildcard certificates" > 333 <img width="750" height="391" src="https://opensource.hk/wp-content/uploads/2018/03/letsencrypt-website.png" class="single-featured wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://opensource.hk/wp-content/uploads/2018/03/letsencrypt-website.png 2080w, https://opensource.hk/wp-content/uploads/2018/03/letsencrypt-website-300x156.png 300w, https://opensource.hk/wp-content/uploads/2018/03/letsencrypt-website-768x400.png 768w, https://opensource.hk/wp-content/uploads/2018/03/letsencrypt-website-1024x534.png 1024w" sizes="auto, (max-width: 750px) 100v
333w, 750px" /> </a> 334 <div class="post-inner-content"> 335 <header class="entry-header page-header"> 336 337 <h2 class="entry-title"><a href="https://opensource.hk/letsencrypt-now-supports-acmev2-wildcard-certificates/" rel="bookmark">Let’s Encrypt now supports ACME v2 and wildcard certificates</a></h2> 338 339 <div class="entry-meta"> 340 <span class="posted-on"><i class="fa fa-calendar-alt"></i> <a href="https://opensource.hk/letsencrypt-now-supports-acmev2-wildcard-certificates/" rel="bookmark"><time class="entry-date published" datetime="2018-03-26T17:32:42+08:00">March 26, 2018</time><time class="updated" datetime="2018-04-06T20:32:47+08:00">April 6, 2018</time></a></span><span class="byline"> <i class="fa fa-user"></i> <span class="author vcard"><a class="url fn n" href="https://opensource.hk/author/sammyfung/">Sammy Fung</a></span></span> <span class="comments-link"><i class="fa fa-comments"></i><a href="https://opensource.hk/letsencrypt-now-supports-acmev2-wildcard-certificates/#respond">Leave a comment</a></span> 341 342 343 </div><!-- .entry-meta --> 344 </header><!-- .entry-header --> 345 346 <div class="entry-content"> 347 348 <p>Let’s Encrypt announces this month that ACMEv2 and wildcard certificate support is now supported. ACMEv2 is an updated version of ACME protocol which has gone through the IETF standards process, ACME protocols handles certificate issuance and management. Wildcard certificates allows webmaster to secure all subdomains of a domain with a single certificate, it still recommend […]</p> 349 <p><a class="btn btn-default read-more" href="https://opensource.hk/letsencrypt-now-supports-acmev2-wildcard-certificates/" title="Let’s Encrypt now supports ACME v2 and wildcard certificates">Read More</a></p> 350 351 </div><!-- .entry-content --> 352 </div> 353 </div> 354</article><!-- #post-## --> 355 356 <nav class="navigation pagination" aria-label="Posts pagination"> 357 <h2 class="screen-reader-text">Posts pagination</h2> 358 <div class="nav-links"><span aria-current="page" class="page-numbers current">1</span> 359<a class="page-numbers" href="https://opensource.hk/category/open-source-news/page/2/">2</a> 360<a class="next page-numbers" href="https://opensource.hk/category/open-source-news/page/2/">Older posts <i class="fa fa-chevron-right"></i></a></div> 361 </nav> 362 </main><!-- #main --> 363 </div><!-- #primary --> 364 365 </div><!-- close .main-content-inner --> 366<div id="secondary" class="widget-area col-sm-12 col-md-4" role="complementary"> 367 <div class="well">
368 <aside id="rss-3" class="widget widget_rss"><h3 class="widget-title"><a class="rsswidget rss-widget-feed" href="https://opensourcehk.substack.com/feed"><img class="rss-widget-icon" style="border:0" width="14" height="14" src="https://opensource.hk/wp-includes/images/rss.png" alt="RSS feed: Latest Newsletter Content" loading="lazy" /></a> <a class="rsswidget rss-widget-title" href="https://opensourcehk.substack.com/">Latest Newsletter Content</a></h3><nav aria-label="Latest Newsletter Content"><ul><li><a class='rsswidget' href='https://opensourcehk.substack.com/p/oshk-july-meetup-dont-panicstart'>OSHK July Meetup: Donât PanicâStart Your PostgreSQL Journey</a></li><li><a class='rsswidget' href='https://opensourcehk.substack.com/p/join-hkoscon-2026-hong-kongs-premier'>Join HKOSCon 2026: Hong Kong's Premier Open Source Conference â June 6 | Secure Your Free/ discounted Spot Now! ð</a></li><li><a class='rsswidget' href='https://opensourcehk.substack.com/p/dont-sleep-on-april-bloomberg-agentcon'>Donât Sleep on April â Bloomberg, AgentCon & HKOSCon CFP Deadline</a></li></ul></nav></aside><aside id="custom_html-3" class="widget_text widget widget_custom_html"><h3 class="widget-title">Search</h3><div class="textwidget custom-html-widget">
368<script async src="https://cse.google.com/cse.js?cx=ba74684c0e756bfe9"></script>
368 369<div class="gcse-search"></div></div></aside><aside id="categories-2" class="widget widget_categories"><h3 class="widget-title">Categories</h3><nav aria-label="Categories"> 370 <ul> 371 <li class="cat-item cat-item-2"><a href="https://opensource.hk/category/events/">Events</a> 372<ul class='children'> 373 <li class="cat-item cat-item-324"><a href="https://opensource.hk/category/events/meetups/">Meetups</a> 374</li> 375 <li class="cat-item cat-item-328"><a href="https://opensource.hk/category/events/ad-hoc-events/">Ad Hoc Events</a> 376</li> 377 <li class="cat-item cat-item-9"><a href="https://opensource.hk/category/events/supporting-events/">Supporting Events</a> 378</li> 379 <li class="cat-item cat-item-112"><a href="https://opensource.hk/category/events/overseas/">Overseas Activities</a> 380</li> 381 <li class="cat-item cat-item-49"><a href="https://opensource.hk/category/events/workshops/">Workshops</a> 382</li> 383 <li class="cat-item cat-item-111"><a href="https://opensource.hk/category/events/youth/">Program for Youth</a> 384</li> 385 <li class="cat-item cat-item-17"><a href="https://opensource.hk/category/events/hkpug/">Hong Kong Python User Group</a> 386</li> 387 <li class="cat-item cat-item-19"><a href="https://opensource.hk/category/events/hkrug/">Hong Kong R User Group</a> 388</li> 389 <li class="cat-item cat-item-26"><a href="https://opensource.hk/category/events/hkoscon/">Hong Kong Open Source Conference</a> 390</li> 391</ul> 392</li> 393 <li class="cat-item cat-item-369"><a href="https://opensource.hk/category/keynote-invited-speeches/">Keynote & Invited Speeches</a> 394</li> 395 <li class="cat-item cat-item-18"><a href="https://opensource.hk/category/committee-updates/">Committee Updates</a> 396</li> 397 <li class="cat-item cat-item-341"><a href="https://opensource.hk/category/media-coverage/">Media Coverage</a> 398</li> 399 <li class="cat-item cat-item-110"><a href="https://opensource.hk/category/open-data/">Open Data</a> 400</li> 401 <li class="cat-item cat-item-1 current-cat"><a aria-current="page" href="https://opensource.hk/category/open-source-news/">Open Source News</a> 402</li> 403 </ul> 404 405 </nav></aside><aside id="archives-2" class="widget widget_archive"><h3 class="widget-title">Archives</h3> <label class="screen-reader-text" for="archives-dropdown-2">Archives</label> 406 <select id="archives-dropdown-2" name="archive-dropdown"> 407 408 <option value="">Select Month</option> 409 <option value='https://opensource.hk/2026/10/'> October 2026 </option> 410 <option value='https://opensource.hk/2026/09/'> September 2026 </option> 411 <option value='https://opensource.hk/2026/08/'> August 2026 </option> 412 <option value='https://opensource.hk/2026/07/'> July 2026 </option> 413 <option value='https://opensource.hk/2026/06/'> June 2026 </option> 414 <option value='https://opensource.hk/2026/05/'> May 2026 </option> 415 <option value='https://opensource.hk/2026/04/'> April 2026 </option> 416 <option value='https://opensource.hk/2026/03/'> March 2026 </option> 417 <option value='https://opensource.hk/2026/02/'> February 2026 </option> 418 <option value='https://opensource.hk/2025/12/'> December 2025 </option> 419 <option value='https://opensource.hk/2025/11/'> November 2025 </option> 420 <option value='https://opensource.hk/2025/10/'> October 2025 </option> 421 <option value='https://opensource.hk/2025/06/'> June 2025 </option> 422 <option value='https://opensource.hk/2025/05/'> May 2025 </option> 423 <option value='https://opensource.hk/2025/04/'> April 2025 </option> 424 <option value='https://opensource.hk/2025/03/'> March 2025 </option> 425 <option value='https://opensource.hk/2025/01/'> January 2025 </option> 426 <option value='https://opensource.hk/2024/12/'> December 2024 </option> 427 <option value='https://opensource.hk/2024/11/'> November 2024 </option> 428 <option value='https://opensource.hk/2024/10/'> October 2024 </option> 429 <option value='https://opensource.hk/2024/09/'> September 2024 </option> 430 <option value='https://opensource.hk/2024/08/'> August 2024 </option> 431 <option value='https://opensource.hk/2024/06/'> June 2024 </option> 432 <option value='https://opensource.hk/2024/03/'> March 2024 </option> 433 <option value='https://opensource.hk/2024/02/'> February 2024 </option> 434 <option value='https://opensource.hk/2024/01/'> January 2024 </option> 435 <option value='https://opensource.hk/2023/12/'> December 2023 </option> 436 <option value='https://opensource.hk/2023/10/'> October 2023 </option> 437 <option value='https://opensource.hk/2023/08/'> August 2023 </option> 438 <option value='https://opensource.hk/2023/07/'> July 2023 </option> 439 <option value='https://opensource.hk/2023/06/'> June 2023 </option> 440 <option value='https://opensource.hk/2023/05/'> May 2023 </option> 441 <option value='https://opensource.hk/2023/04/'> April 2023 </option> 442 <option value='https://opensource.hk/2023/03/'> March 2023 </option> 443 <option value='https://opensource.hk/2022/10/'> October 2022 </option> 444 <option value='https://opensource.hk/2022/08/'> August 2022 </option> 445 <option value='https://opensource.hk/2022/07/'> July 2022 </option> 446 <option value='https://opensource.hk/2022/06/'> June 2022 </option> 447 <option value='https://opensource.hk/2022/05/'> May 2022 </option> 448 <option value='https://opensource.hk/2022/04/'> April 2022 </option> 449 <option value='https://opensource.hk/2022/03/'> March 2022 </option> 450 <option value='https://opensource.hk/2022/02/'> February 2022 </option> 451 <option value='https://opensource.hk/2022/01/'> January 2022 </option> 452 <option value='https://opensource.hk/2021/12/'> December 2021 </option> 453 <option value='https://opensource.hk/2021/11/'> November 2021 </option> 454 <option value='https://opensource.hk/2021/10/'> October 2021 </option> 455 <option value='https://opensource.hk/2021/09/'> September 2021 </option> 456 <option value='https://opensource.hk/2021/08/'> August 2021 </option> 457 <option value='https://opensource.hk/2021/07/'> July 2021 </option> 458 <option value='https://opensource.hk/2021/06/'> June 2021 </option> 459 <option value='https://opensource.hk/2021/05/'> May 2021 </option> 460 <option value='https://opensource.hk/2021/03/'> March 2021 </option> 461 <option value='https://opensource.hk/2021/02/'> February 2021 </option> 462 <option value='https://opensource.hk/2021/01/'> January 2021 </option> 463 <option value='https://opensource.hk/2020/12/'> December 2020 </option> 464 <option value='https://opensource.hk/2020/11/'> November 2020 </option> 465 <option value='https://opensource.hk/2020/10/'> October 2020 </option> 466 <option value='https://opensource.hk/2020/09/'> September 2020 </option> 467 <option value='https://opensource.hk/2020/08/'> August 2020 </option> 468 <option value='https://opensource.hk/2020/07/'> July 2020 </option> 469 <option value='https://opensource.hk/2020/06/'> June 2020 </option> 470 <option value='https://opensource.hk/2020/04/'> April 2020 </option> 471 <option value='https://opensource.hk/2020/01/'> January 2020 </option> 472 <option value='https://opensource.hk/2019/10/'> October 2019 </option> 473 <option value='https://opensource.hk/2019/08/'> August 2019 </option> 474 <option value='https://opensource.hk/2019/06/'> June 2019 </option> 475 <option value='https://opensource.hk/2019/05/'>
475 May 2019 </option> 476 <option value='https://opensource.hk/2019/04/'> April 2019 </option> 477 <option value='https://opensource.hk/2019/03/'> March 2019 </option> 478 <option value='https://opensource.hk/2019/02/'> February 2019 </option> 479 <option value='https://opensource.hk/2019/01/'> January 2019 </option> 480 <option value='https://opensource.hk/2018/11/'> November 2018 </option> 481 <option value='https://opensource.hk/2018/10/'> October 2018 </option> 482 <option value='https://opensource.hk/2018/08/'> August 2018 </option> 483 <option value='https://opensource.hk/2018/07/'> July 2018 </option> 484 <option value='https://opensource.hk/2018/06/'> June 2018 </option> 485 <option value='https://opensource.hk/2018/05/'> May 2018 </option> 486 <option value='https://opensource.hk/2018/04/'> April 2018 </option> 487 <option value='https://opensource.hk/2018/03/'> March 2018 </option> 488 <option value='https://opensource.hk/2018/02/'> February 2018 </option> 489 <option value='https://opensource.hk/2018/01/'> January 2018 </option> 490 <option value='https://opensource.hk/2017/12/'> December 2017 </option> 491 <option value='https://opensource.hk/2017/08/'> August 2017 </option> 492 <option value='https://opensource.hk/2017/06/'> June 2017 </option> 493 <option value='https://opensource.hk/2017/05/'> May 2017 </option> 494 <option value='https://opensource.hk/2017/02/'> February 2017 </option> 495 <option value='https://opensource.hk/2017/01/'> January 2017 </option> 496 <option value='https://opensource.hk/2016/10/'> October 2016 </option> 497 <option value='https://opensource.hk/2016/09/'> September 2016 </option> 498 <option value='https://opensource.hk/2016/08/'> August 2016 </option> 499 <option value='https://opensource.hk/2016/06/'> June 2016 </option> 500 <option value='https://opensource.hk/2016/02/'> February 2016 </option> 501 <option value='https://opensource.hk/2015/10/'> October 2015 </option> 502 <option value='https://opensource.hk/2015/09/'> September 2015 </option> 503 <option value='https://opensource.hk/2015/08/'> August 2015 </option> 504 <option value='https://opensource.hk/2015/07/'> July 2015 </option> 505 <option value='https://opensource.hk/2015/06/'> June 2015 </option> 506 <option value='https://opensource.hk/2015/05/'> May 2015 </option> 507 <option value='https://opensource.hk/2015/04/'> April 2015 </option> 508 <option value='https://opensource.hk/2015/03/'> March 2015 </option> 509 <option value='https://opensource.hk/2015/02/'> February 2015 </option> 510 <option value='https://opensource.hk/2015/01/'> January 2015 </option> 511 <option value='https://opensource.hk/2014/12/'> December 2014 </option> 512 <option value='https://opensource.hk/2014/11/'>
512 November 2014 </option> 513 <option value='https://opensource.hk/2014/10/'> October 2014 </option> 514 <option value='https://opensource.hk/2014/09/'> September 2014 </option> 515 <option value='https://opensource.hk/2014/08/'> August 2014 </option> 516 <option value='https://opensource.hk/2014/07/'> July 2014 </option> 517 <option value='https://opensource.hk/2014/06/'> June 2014 </option> 518 <option value='https://opensource.hk/2014/05/'> May 2014 </option> 519 <option value='https://opensource.hk/2014/04/'> April 2014 </option> 520 <option value='https://opensource.hk/2014/03/'> March 2014 </option> 521 <option value='https://opensource.hk/2014/02/'> February 2014 </option> 522 <option value='https://opensource.hk/2014/01/'> January 2014 </option> 523 <option value='https://opensource.hk/2013/12/'> December 2013 </option> 524 <option value='https://opensource.hk/2013/11/'> November 2013 </option> 525 <option value='https://opensource.hk/2013/10/'> October 2013 </option> 526 <option value='https://opensource.hk/2013/09/'> September 2013 </option> 527 <option value='https://opensource.hk/2013/08/'> August 2013 </option> 528 <option value='https://opensource.hk/2013/06/'> June 2013 </option> 529 <option value='https://opensource.hk/2013/05/'> May 2013 </option> 530 <option value='https://opensource.hk/2013/03/'> March 2013 </option> 531 <option value='https://opensource.hk/2013/01/'> January 2013 </option> 532 <option value='https://opensource.hk/2012/11/'> November 2012 </option> 533 <option value='https://opensource.hk/2012/09/'> September 2012 </option> 534 <option value='https://opensource.hk/2012/08/'> August 2012 </option> 535 <option value='https://opensource.hk/2012/07/'> July 2012 </option> 536 <option value='https://opensource.hk/2012/06/'> June 2012 </option> 537 <option value='https://opensource.hk/2012/05/'> May 2012 </option> 538 <option value='https://opensource.hk/2012/04/'> April 2012 </option> 539 <option value='https://opensource.hk/2012/03/'> March 2012 </option> 540 <option value='https://opensource.hk/2012/02/'> February 2012 </option> 541 <option value='https://opensource.hk/2012/01/'> January 2012 </option> 542 <option value='https://opensource.hk/2011/12/'> December 2011 </option> 543 <option value='https://opensource.hk/2011/08/'> August 2011 </option> 544 <option value='https://opensource.hk/2011/04/'> April 2011 </option> 545 546 </select> 547 548
548<script> 549( ( dropdownId ) => { 550 const dropdown = document.getElementById( dropdownId ); 551 function onSelectChange() { 552 setTimeout( () => { 553 if ( 'escape' === dropdown.dataset.lastkey ) { 554 return; 555 } 556 if ( dropdown.value ) { 557 document.location.href = dropdown.value; 558 } 559 }, 250 ); 560 } 561 function onKeyUp( event ) { 562 if ( 'Escape' === event.key ) { 563 dropdown.dataset.lastkey = 'escape'; 564 } else { 565 delete dropdown.dataset.lastkey; 566 } 567 } 568 function onClick() { 569 delete dropdown.dataset.lastkey; 570 } 571 dropdown.addEventListener( 'keyup', onKeyUp ); 572 dropdown.addEventListener( 'click', onClick ); 573 dropdown.addEventListener( 'change', onSelectChange ); 574})( "archives-dropdown-2" ); 575 576//# sourceURL=WP_Widget_Archives%3A%3Awidget 577</script>
577 578</aside><aside id="tag_cloud-2" class="widget widget_tag_cloud"><h3 class="widget-title">Tags</h3><nav aria-label="Tags"><div class="tagcloud"><a href="https://opensource.hk/tag/ansible/" class="tag-cloud-link tag-link-393 tag-link-position-1" style="font-size: 8pt;" aria-label="ansible (1 item)">ansible</a> 579<a href="https://opensource.hk/tag/apache/" class="tag-cloud-link tag-link-5 tag-link-position-2" style="font-size: 8pt;" aria-label="apache (1 item)">apache</a> 580<a href="https://opensource.hk/tag/blender/" class="tag-cloud-link tag-link-113 tag-link-position-3" style="font-size: 9.8129496402878pt;" aria-label="blender (2 items)">blender</a> 581<a href="https://opensource.hk/tag/blockchain/" class="tag-cloud-link tag-link-115 tag-link-position-4" style="font-size: 9.8129496402878pt;" aria-label="blockchain (2 items)">blockchain</a> 582<a href="https://opensource.hk/tag/commonvoice-en/" class="tag-cloud-link tag-link-405 tag-link-position-5" style="font-size: 8pt;" aria-label="commonvoice (1 item)">commonvoice</a> 583<a href="https://opensource.hk/tag/devops/" class="tag-cloud-link tag-link-139 tag-link-position-6" style="font-size: 8pt;" aria-label="devops (1 item)">devops</a> 584<a href="https://opensource.hk/tag/education/" class="tag-cloud-link tag-link-143 tag-link-position-7" style="font-size: 8pt;" aria-label="education (1 item)">education</a> 585<a href="https://opensource.hk/tag/elasticsearch/" class="tag-cloud-link tag-link-3 tag-link-position-8" style="font-size: 9.8129496402878pt;" aria-label="elasticsearch (2 items)">elasticsearch</a> 586<a href="https://opensource.hk/tag/firefox/" class="tag-cloud-link tag-link-374 tag-link-position-9" style="font-size: 13.539568345324pt;" aria-label="firefox (6 items)">firefox</a> 587<a href="https://opensource.hk/tag/freehkfonts/" class="tag-cloud-link tag-link-16 tag-link-position-10" style="font-size: 8pt;" aria-label="freehkfonts (1 item)">freehkfonts</a> 588<a href="https://opensource.hk/tag/gnome-en/" class="tag-cloud-link tag-link-362 tag-link-position-11" style="font-size: 13.539568345324pt;" aria-label="gnome (6 items)">gnome</a> 589<a href="https://opensource.hk/tag/hackathon/" class="tag-cloud-link tag-link-478 tag-link-position-12" style="font-size: 12.028776978417pt;" aria-label="Hackathon (4 items)">Hackathon</a> 590<a href="https://opensource.hk/tag/hacktoberfest/" class="tag-cloud-link tag-link-336 tag-link-position-13" style="font-size: 8pt;" aria-label="Hacktoberfest (1 item)">Hacktoberfest</a> 591<a href="https://opensource.hk/tag/haxe/" class="tag-cloud-link tag-link-140 tag-link-position-14" style="font-size: 8pt;" aria-label="haxe (1 item)">haxe</a> 592<a href="https://opensource.hk/tag/hkoscon/" class="tag-cloud-link tag-link-70 tag-link-position-15" style="font-size: 22pt;" aria-label="HKOSCon (48 items)">HKOSCon</a> 593<a href="https://opensource.hk/tag/ibm/" class="tag-cloud-link tag-link-13 tag-link-position-16" style="font-size: 9.8129496402878pt;" aria-label="ibm (2 items)">ibm</a> 594<a href="https://opensource.hk/tag/input-method/" class="tag-cloud-link tag-link-380 tag-link-position-17" style="font-size: 9.8129496402878pt;" aria-label="input method (2 items)">input method</a> 595<a href="https://opensource.hk/tag/ios/" class="tag-cloud-link tag-link-332 tag-link-position-18" style="font-size: 11.021582733813pt;" aria-label="iOS (3 items)">iOS</a> 596<a href="https://opensource.hk/tag/iot/" class="tag-cloud-link tag-link-378 tag-link-position-19" style="font-size: 9.8129496402878pt;" aria-label="IoT (2 items)">IoT</a> 597<a href="https://opensource.hk/tag/java/" class="tag-cloud-link tag-link-6 tag-link-position-20" style="font-size: 12.028776978417pt;" aria-label="java (4 items)">java</a> 598<a href="https://opensource.hk/tag/javascript/" class="tag-cloud-link tag-link-8 tag-link-position-21" style="font-size: 12.028776978417pt;" aria-label="javascript (4 items)">javascript</a> 599<a href="https://opensource.hk/tag/kafka/" class="tag-cloud-link tag-link-528 tag-link-position-22" style="font-size: 8pt;" aria-label="Kafka (1 item)">Kafka</a> 600<a href="https://opensource.hk/tag/kubernetes/" class="tag-cloud-link tag-link-334 tag-link-position-23" style="font-size: 8pt;" aria-label="kubernetes (1 item)">kubernetes</a> 601<a href="https://opensource.hk/tag/linux/" class="tag-cloud-link tag-link-141 tag-link-position-24" style="font-size: 8pt;" aria-label="linux (1 item)">linux</a> 602<a href="https://opensource.hk/tag/machinelearning/" class="tag-cloud-link tag-link-114 tag-link-position-25" style="font-size: 8pt;" aria-label="machinelearning (1 item)">machinelearning</a> 603<a href="https://opensource.hk/tag/microsoft/" class="tag-cloud-link tag-link-66 tag-link-position-26" style="font-size: 8pt;" aria-label="microsoft (1 item)">microsoft</a> 604<a href="https://opensource.hk/tag/mobile/" class="tag-cloud-link tag-link-137 tag-link-position-27" style="font-size: 9.8129496402878pt;" aria-label="mobile (2 items)">mobile</a> 605<a href="https://opensource.hk/tag/mopcon/" class="tag-cloud-link tag-link-474 tag-link-position-28" style="font-size: 8pt;" aria-label="MOPCON (1 item)">MOPCON</a> 606<a href="https://opensource.hk/tag/mozilla/" class="tag-cloud-link tag-link-53 tag-link-position-29" style="font-size: 12.834532374101pt;" aria-label="mozilla (5 items)">mozilla</a> 607<a href="https://opensource.hk/tag/mysql/" class="tag-cloud-link tag-link-39 tag-link-position-30" style="font-size: 11.021582733813pt;" aria-label="mysql (3 items)">mysql</a> 608<a href="https://opensource.hk/tag/olpc/" class="tag-cloud-link tag-link-50 tag-link-position-31" style="font-size: 8pt;" aria-label="olpc (1 item)">olpc</a> 609<a href="https://opensource.hk/tag/opendata/" class="tag-cloud-link tag-link-7 tag-link-position-32" style="font-size: 15.453237410072pt;" aria-label="Open Data (10 items)">Open Data</a> 610<a href="https://opensource.hk/tag/openstack/" class="tag-cloud-link tag-link-10 tag-link-position-33" style="font-size: 8pt;" aria-label="openstack (1 item)">openstack</a> 611<a href="https://opensource.hk/tag/pyconapac/" class="tag-cloud-link tag-link-476 tag-link-position-34" style="font-size: 9.8129496402878pt;" aria-label="PyCon APAC (2 items)">PyCon APAC</a> 612<a href="https://opensource.hk/tag/pyconhk/" class="tag-cloud-link tag-link-388 tag-link-position-35" style="font-size: 15.856115107914pt;" aria-label="PyCon HK (11 items)">PyCon HK</a> 613<a href="https://opensource.hk/tag/python/" class="tag-cloud-link tag-link-25 tag-link-position-36" style="font-size: 16.561151079137pt;" aria-label="python (13 items)">python</a> 614<a href="https://opensource.hk/tag/security/" class="tag-cloud-link tag-link-136 tag-link-position-37" style="font-size: 9.8129496402878pt;" aria-label="security (2 items)">security</a> 615<a href="https://opensource.hk/tag/softwarefreedomday/" class="tag-cloud-link tag-link-67 tag-link-position-38" style="font-size: 9.8129496402878pt;" aria-label="softwarefreedomday (2 items)">softwarefreedomday</a> 616<a href="https://opensource.hk/tag/specialevent/" class="tag-cloud-link tag-link-480 tag-link-position-39" style="font-size: 16.561151079137pt;" aria-label="Special Event (13 items)">Special Event</a> 617<a href="https://opensource.hk/tag/student/" class="tag-cloud-link tag-link-33 tag-link-position-40" style="font-size: 11.021582733813pt;" aria-label="student (3 items)">student</a> 618<a href="https://opensource.hk/tag/swift2021/" class="tag-cloud-link tag-link-419 tag-link-position-41" style="font-size: 11.021582733813pt;" aria-label="swift2021 (3 items)">swift2021</a> 619<a href="https://opensource.hk/tag/videolan/" class="tag-cloud-link tag-link-52 tag-link-position-42" style="font-size: 8pt;" aria-label="videolan (1 item)">videolan</a> 620<a href="https://opensource.hk/tag/web-application/" class="tag-cloud-link tag-link-382 tag-link-position-43" style="font-size: 9.8129496402878pt;" aria-label="web application (2 items)">web application</a> 621<a href="https://opensource.hk/tag/wordpress/" class="tag-cloud-link tag-link-4 tag-link-position-44" style="font-size: 9.8129496402878pt;" aria-label="WordPress (2 items)">WordPress</a> 622<a href="https://opensource.hk/tag/workshop/" class="tag-cloud-link tag-link-470 tag-link-position-45" style="font-size: 15.453237410072pt;" aria-label="workshop (10 items)">workshop</a></div> 623</nav></aside><aside id="block-2" class="widget widget_block"> 624<ul class="wp-block-social-links is-layout-flex wp-block-social-links-is-layout-flex"> 625 626</ul> 627</aside> </div> 628</div><!-- #secondary --> 629 </div><!-- close .row --> 630 </div><!-- close .container --> 631</div><!-- close .site-content --> 632 633 <div id="footer-area"> 634 <div class="container footer-inner"> 635 <div class="row"> 636 637 638 <div class="footer-widget-area"> 639 <div class="col-sm-4 footer-widget" role="complementary"> 640 <div id="meta-2" class="widget widget_meta"><h3 class="widgettitle">Meta</h3><nav aria-label="Meta"> 641 <ul> 642 <li><a rel="nofollow" href="https://opensource.hk/wp-login.php">Log in</a></li> 643 <li><a href="https://opensource.hk/feed/">Entries feed</a></li> 644 <li><a href="https://opensource.hk/comments/feed/">Comments feed</a></li> 645 646 <li><a href="https://wordpress.org/">WordPress.org</a></li> 647 </ul> 648 649 </nav></div> </div><!-- .widget-area .first --> 650 651 <div class="col-sm-4 footer-widget" role="complementary"> 652 <div id="custom_html-2" class="widget_text widget widget_custom_html"><h3 class="widgettitle">
652Creative Commons</h3><div class="textwidget custom-html-widget"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:cc="http://creativecommons.org/ns#" class="license-text">This work by <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://opensource.hk/">Open Source Hong Kong</a> is licensed under <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0">CC BY-SA 4.0<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1" /><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1" /><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/sa.svg?ref=chooser-v1" /></a></p></div></div> </div><!-- .widget-area .second --> 653 654 <div class="col-sm-4 footer-widget" role="complementary"> 655 <div id="text-5" class="widget widget_text"><h3 class="widgettitle">About Open Source Hong Kong</h3> <div class="textwidget"><p>Established in 2006, Open Source Hong Kong registered as an organization under Cap. 151 Society Ordinance in Hong Kong, registration number 54617. It is also a Community member of the <a href="https://openinventionnetwork.com/community-directory-alphabetical/" target="_blank" rel="noopener">Open Invention Network</a> and has been an <a href="https://opensource.org/affiliates" target="_blank" rel="noopener">Open Source Initiative</a> Affiliate Member since 2019. To learn more, please read the <a href="https://opensource.hk/about/" rel="noopener">About</a> section. You may also want to check out our <a href="https://opensource.hk/privacy-policy-statement/" rel="noopener">Privacy Policy Statement</a>.</p> 656</div> 657 </div> </div><!-- .widget-area .third --> 658 </div> 659 </div> 660 </div> 661 662 <footer id="colophon" class="site-footer" role="contentinfo"> 663 <div class="site-info container"> 664 <div class="row"> 665 <nav id="menu-social" class="social-icons"><ul id="menu-social-items" class="social-menu"><li id="menu-item-1712" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1712"><a href="https://linkedin.com/company/opensourcehk"><i class="social_icon"><span>LinkedIn</span></i></a></li> 666<li id="menu-item-1713" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1713"><a href="https://www.facebook.com/opensourcehk"><i class="social_icon"><span>Facebook</span></i></a></li> 667<li id="menu-item-1714" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1714"><a href="https://twitter.com/opensourcehk"><i class="social_icon"><span>Twitter</span></i></a></li> 668<li id="menu-item-1715" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1715"><a href="https://www.youtube.com/channel/UCm0wh7teyJywvyL0vPgiOyw"><i class="social_icon"><span>YouTube</span></i></a></li> 669<li id="menu-item-1808" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1808"><a href="https://t.me/opensourcehkdiscuss"><i class="social_icon"><span>Telegram</span></i></a></li> 670<li id="menu-item-1734" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1734"><a href="https://github.com/opensourcehk/"><i class="social_icon"><span>GitHub</span></i></a></li> 671</ul></nav> <nav role="navigation" class="col-md-6"> 672 </nav> 673 <div class="copyright col-md-6"> 674 Theme by <a href="https://colorlib.com/" target="_blank" rel="nofollow noopener">Colorlib</a> Powered by <a href="https://wordpress.org/" target="_blank">WordPress</a> </div> 675 </div> 676 </div><!-- .site-info --> 677 <div class="scroll-to-top"><i class="fa fa-angle-up"></i></div>
677<!-- .scroll-to-top --> 678 </footer><!-- #colophon --> 679 </div> 680</div><!-- #page --> 681 682
682<script type="text/javascript"> 683 jQuery(document).ready(function ($) { 684 if ($(window).width() >= 767) { 685 $('.navbar-nav > li.menu-item > a').click(function () { 686 if ($(this).attr('target') !== '_blank') { 687 window.location = $(this).attr('href') 688 } 689 }) 690 } 691 }) 692 </script>
692 693
693<script type="speculationrules"> 694{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/sparkling/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 695</script>
vendor: 1 bytes, line 695
695
696<script id="pll_cookie_script-js-after"> 697(function() { 698 var expirationDate = new Date(); 699 expirationDate.setTime( expirationDate.getTime() + 31536000 * 1000 ); 700 document.cookie = "pll_language=en; expires=" + expirationDate.toUTCString() + "; path=/; secure; SameSite=Lax"; 701 }()); 702 703//# sourceURL=pll_cookie_script-js-after 704</script>
vendor: 1 bytes, line 704
704
705<script id="sparkling-bootstrapjs-js" src="https://opensource.hk/wp-content/themes/sparkling/assets/js/vendor/bootstrap.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 705
705
706<script id="sparkling-functions-js" src="https://opensource.hk/wp-content/themes/sparkling/assets/js/functions.js?ver=2.6.11"></script>
vendor: 1 bytes, line 706
706
707<script id="sparkling-skip-link-focus-fix-js" src="https://opensource.hk/wp-content/themes/sparkling/assets/js/skip-link-focus-fix.min.js?ver=2.6.11"></script>
vendor: 1 bytes, line 707
707
708<script id="wp-emoji-settings" type="application/json"> 709{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://opensource.hk/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}} 710</script>
vendor: 1 bytes, line 710
710
711<script type="module"> 712/*! This file is auto-generated */ 713var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 714//# sourceURL=https://opensource.hk/wp-includes/js/wp-emoji-loader.min.js 715</script>
715 716
717<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"64d359e6e529495da328e47809785f2e","r":1,"spa":2}' crossorigin="anonymous"></script>
717 718</body> 719</html> 720 721<!-- Dynamic page generated in 0.287 seconds. --> 722<!-- Cached page generated by WP-Super-Cache on 2026-10-01 20:30:03 --> 723 724<!-- super cache -->
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.