note

私がオープンデータを諦めないわけ

諦めないわけシリーズの第一弾が3年前だったのか、と自分のnoteを感慨深く読み返したりしています。シビックテックを諦めない!は正直色々とモヤモヤした中で書いたような記憶があるのですが、今年(2024年)は、一般社団法人シビックテックジャパン...
note

ローカルメディアラボで一緒に仕事をしませんか?

私の本業である株式会社ローカルメディアラボ(LML)では、現在、各方面に求人を出しています。特に2024年度に入ってからは新規案件の相談も多く、これまで蒔いてきた種が一斉に芽吹き始めたような実感があります。そんな未知の案件を、楽しみながら、...
note

なぜローカルだったのだろう?(自問)

2010年4月に、私は前職の地元新聞社を離れ、ローカルメディアラボという会社を立ち上げました。実は、起業しようという決断よりも、新聞社を離れようという決断の方が早かったので、在京のIT企業の方はじめ、色々な方からお声がけをいただきました。一...
note

公共デザインイニシアティブ

これは、私が理事長を務める特定非営利活動法人の名称です。2017年に、前理事長の西村さんから、「あとは君たちに託す」と言われ、社員総入れ替えという形で、法人を承継しました。当時はNPO法人NetComさがという名称でしたが、さかのぼると19...
note

私がシビックテックを諦めないわけ

noteに登録して7周年のバッジをいただきましたが、ここに文章を書くのは初めてです。年の瀬も近いし、何か新しいことでも始めてみようかという気まぐれと、シビックテックアドベントカレンダー書かなきゃという焦りと、そんなものが背中を押してくれまし...
お仕事

こがん・そがん・あがん・どがん

この度、会社のステッカーを新調しました。デザインは、弊社でいつも仕事をご一緒させていただいている今村デザインさん作。昨年、佐賀県のさがUターンナビというサイトのコンテンツとして、佐賀弁の魅力を紹介させていただいた際に描いていただいたイラスト...
つぶやき程度

Clubhouse

流行ってますね。ちょっと心配になるくらいに。とりあえず登録を済ませ静観しているような状況なのですが、「誰がルームを開きました」的なプッシュ通知が来る来る。時間もあまり関係なく、勤務時間中じゃないんかい、と突っ込みたくなるくらい(笑)音声によ...
つぶやき程度

2021年、あと11ヶ月!

2021年は、年末年始の休みも短めで、年明け早々の仕事の準備でばたついていたこともあり、いつの間にか年が明けていて、気づけばもう如月という感じがしています。このブログを始めたのが2004年。前職を離れ起業したのが2010年。そして10年が過...
未分類

Mac記念日だと聞いて

たまたまFacebookで、「過去のこの日」を開いて眺めていたら、11月13日はWindowsからMacに切り替えた記念日でした。2009年なので11年前です。あれから、Air11→Air13と変遷しProも2台目。すっかりMacユーザーに...
つぶやき程度

○○疲れ

私が、ウェブサービスと積極的に関わるようになったのは2003年頃からで、それ以前は、いわゆるROM(Reed on Memory)でした。その後、ブログを書くようになり、mixiやgreeなどのSNSを使うようになり、Twitter、Ins...
未分類

きのうのふたこと

これまで、いろいろなソーシャルネットワーキングサービスを使ってきたけど、今はFacebookとTwitterとInstagramという月並みなサービスしか使っていません。Linkedinは時々のぞくくらい、Eightも既にSNSといえるのか...
つぶやき程度

まだ10年!

10年前の3月31日、私は16年お世話になった佐賀新聞社を辞めました。3月25日に株式会社ローカルメディアラボの登記が完了したので、会社も丸10年が過ぎたことになります。最近、「自分はこの10年何をやってきたのだろう」とふと振り返ることが増...
'); /* ヘッダーの高さの変化分、paddingで調整しスクロール位置を止まらせる */ $("#header-fixed").css({ 'padding-top': `${threashold}px`, }); /* トップメニュータイプに変更する */ $("#header-container-in").removeClass('hlt-center-logo hlt-center-logo-top-menu').addClass("hlt-top-menu wrap"); $("#header-container").addClass("fixed-header"); $("#header-container").css({ 'position': 'fixed', 'top': '-100px', 'left': '0', 'width': '100%', }); const wpadminbar = document.getElementById('wpadminbar'); const headerContainerTop = wpadminbar ? wpadminbar.clientHeight : 0; $('#header-container').animate( { top: headerContainerTop, }, 500 ); } } /*固定ヘッダーの解除*/ function staticHeader() { if ($("#header-container").hasClass("fixed-header")) { /*センターロゴタイプに戻す*/ $("#header-container-in").removeClass("hlt-top-menu hlt-tm-right hlt-tm-small hlt-tm-small wrap").addClass(" hlt-center-logo"); $("#header-container").removeClass("fixed-header"); $("#header-container").css({ 'position': 'static', 'top': 'auto', 'left': 'auto', 'width': 'auto', }); /* ヘッダーの高さの戻る分、padding削除しスクロール位置を止まらせる */ $("#header-fixed").css({ 'padding-top': '0', }); $("#header-fixed").remove(); } } /* 境界値をヘッダーコンテナに設定 */ var threashold = $('#header-container').height(); var prevScrollTop = -1; var $window = $(window); var mobileWidth = 1023; $window.scroll(function() { var scrollTop = $window.scrollTop(); var s1 = (prevScrollTop > threashold); var s2 = (scrollTop > threashold); var w = $window.width(); /*スクロールエリアの位置調整*/ function adjustScrollArea(selector) { if ($(selector) && $(selector).offset()) { offset = $(selector).offset().top; h = $("#header-container").height(); pt = $(selector).css('padding-top'); if (pt) { pt = pt.replace('px', ''); } else { pt = 0; } if ((scrollTop >= offset - h) && (w > mobileWidth)) { if ((pt <= 1) && $("#header-container").hasClass('fixed-header')) { $(selector).css({ 'padding-top': h + 'px', }); } } else { if (pt > 0) { $(selector).css({ 'padding-top': 0, }); } } } } /*スクロール追従エリアの調整*/ function adjustScrollAreas() { adjustScrollArea('#sidebar-scroll'); adjustScrollArea('#main-scroll'); } /*固定ヘッダーのスタイル決め*/ function adjustFixedHeaderStyle(s1, s2, w, scrollTop, mobileWidth) { if (s1 ^ s2) { if (s2 && (w > mobileWidth)) { stickyHeader(); } } /* 境界値に達したら固定化 */ if (scrollTop <= threashold || w <= mobileWidth) { staticHeader(); } } adjustFixedHeaderStyle(s1, s2, w, scrollTop, mobileWidth); adjustScrollAreas(); prevScrollTop = scrollTop; }); /*ウインドウがリサイズされたら発動*/ $window.resize(function () { /*ウインドウの幅を変数に格納*/ var w = $window.width(); if (w <= mobileWidth) { /*モバイル端末の場合*/ staticHeader(); } else { /*パソコン端末の場合*/ var scrollTop = $window.scrollTop(); if (scrollTop >= 50) { stickyHeader(); } } }); })(jQuery);