constructing long string with Javascript

There is a time you need to construct a string (for instance, to create a html block) in your code. In the simpliest approach, youcan constract the string variable  like so var html='<head><body>’+contentVariable+’more stuff’ + ‘</body></head>’; this becomes very messy quickly once more variables, more nested construction is needed. I used to keep concatinating the string, like so var html='<head></body>’; html +=  contentVariable; html += ‘ more Stuff’; html += ‘</body></head>’;     Then I saw a pattern in the couple of codes from internet; var h=[‘<head><body’]; h.push(contentVariable); h.push(‘more Stuff’); h.push(‘</head></body>’); var html=h.join(”); The More concatenation needed, the more convinient the last method becomes. Key is to join the array […]

exploring SharePoint Online

Our office is soon moving to SharePoint online. Currently we are using SP2007 and Microsoft does not support content migration from 2007 to 2013 or SP online. This is good and bad. Good because we can build sites from scratch, bad because there is no easy way to move our contents from SP2007 to SP online. We should be able to copy files and folders from 2007 to online but all the metadata will be lost. lists will be even tougher. we have the third party solution called ShareGate but IT guys are telling us it is faily slow we can not possibly migrate the whole sites (that is in […]

SharePoint online :: modifying “New item or Edit this list” to “Edit this list”

This is my first “SharePoint Online” related javaScript.(I am still experimenting with nuance of SP online) This script changes “New item or Edit this list” links to simpler “Edit this list link. /** * Created by A2life on 3/24/2016. * Modify new or edit div to “edit this list” only * modify “New items or edit” elements on entire page (not just webPart this is attached to) * */ (function () { var thisContext = {}; thisContext.OnPostRender = modifynewEdit; SPClientTemplates.TemplateManager.RegisterTemplateOverrides(thisContext); })(); function modifynewEdit() { // jQuery library is required in this sample // Fallback to loading jQuery from a CDN path if the local is unavailable (window.jQuery || document.write(‘<script src=”//ajax.aspnetcdn.com/ajax/jquery/jquery-1.11.3.min.js”><\/script>’)); […]

Windows 10にアップデートしたら一部アプリケーション(サンダーバード)のフォントがにじむ・ぼやける・溶ける という話

Windows 10へのアップデートはつつがなく終了。 驚いたのはVistaが搭載されていた古ーいノートブックパソコンでも難なくアップデートできてしまったということ。 2年前に組んだデスクトップは全く問題なくアップグレード終了、 と思ったら、 メールクライエントとして長く使わしてもらっているサンダーバードの画面が変だ。 テキストがにじんでいる。 そこでBlur TextとかImage fuzzyとかでグーグル検索をしてみたら、でてくるはでてくるは。  でもたいていの記事はWindows画面のスケーリングを100パーセントにもどせ、だとか,サンダーバードのこんふぃぐにCSSファイルを追加しろだとか、 ようするに画面の解像度と表示フォントのからみの問題としてとらえている。 これかな?と思ったのはThunderbirdのオプション設定においてgfx.direct2d.disabledというパラメーターをTrueに設定する、というもの。 詳細手順はここに詳しい。 でもやっぱり治らない。 自分が直面した問題は 最初はきれいな表示になっていても、数秒そのままにしておくと、文字フォントがどんどんにじんでいってしまう、というもの。 目の前で文字が溶けていく、というか なんだか余計な処理がはじまっているかんじなのだ。 で、やっと見つけたのがこの記事 この記事はAMDのグラフィックスカードの3D機能のモフォロジカルアンチアライアス(MLAA)なる機能が悪さをしているので、これをオフにしようね、というもの。 で、自分のマシンのスペックをみてみれば、 Intelの6400というグラフィックスチップなのだった。 が、 解決法は同じで、3D処理の部分のコンサーバティブモーフォロジカルアンチアライアスの(CMLAA)設定をオフにしてみたら解決。 何かコンサーバティブ(保守的)なものか さっぱりわからぬ。 1.Windows 10の画面を右クリックし、”グラフィックス・プロパティ”を選択 2.3D設定を選び、 CMLAAの設定をオフにする。 これって、おそらくゲーム用のグラフィックスをスムーズにみせるためのロジックなんだろうが、メールアプリには必要ない。 どうもWindows 10にアップグレードしたときに、インストーラが気をきかして? 最新のグラフィックスドライバーを導入したみたいだ。 サンダーバードほどではないにせよ、 エッジブラウザにも影響がでているような感じだった。

Blurry, fuzzy or melting text on Thunderbird after upgrading to Windows 10

When I upgraded to Windows 10, I noticed text on thunderbird was blurry or fuzzy. I googled up the web and had a lot of hit on this subject. There are variety of fixes suggested like… 1) disable hardware acceralation 2) Go to TB option page and change the gfx.direct2d.disabled to true 3) Set Windows display scaling to 100% etc., etc. While I believe those suggesions are all true, none of them solved my issue. Further observation into TB’s screen showed the text start out showing clear then after few seconds, it becomes fuzzy. It feels like the text are melting in front of my eyes. Then I found this […]

日経電子版 Evernoteとの連携サービスを開始

ビジネスマンのたしなみとして日経電子版を購読しているのだが、 今朝メールボックスをみたら、 以下のようなお知らせが来ていた。 日経電子版はインターネット上に文書や写真などを保存・共有するサービスを提供 するエバーノートとの連携を始めました。双方のサービス上で、キーワードや文脈に 沿ったコンテンツをタイムリーに表示し、情報の収集や分析が効率的になります。 以下略 これは便利そうだ。今までもWEB clipper で記事を切り抜いてはいたが、これからはもっとインテリジェントな切り抜きができそうだ。  ちなみに自分が初めてEverNoteに触ったのは2007年、まだPalm機をPDAとして使っていた時期だった。 AceCADのDigiMemoを購入したらバンドルされてきたPC用のソフトだった。 これはLotus 123なみのキラーアプリだ、と思った記憶がある。 当時は日本語が通らなかったが、問い合わせたら、いつのまにかCJK版のベータテスターになっていたりしているうちに 2008年にはWEBサービスを開始。クラウドにローカルデータのコピーが保存され同期するというデータモデルは当時としては画期的だった。 自分のユーザーアカウント番号は6万9千番台、 今はどれくらいのユーザー数がいるのかわからない(2011年時点で1000万人超え, 2013年末には8000万以上)のだが 今にして思えばEarly Adopterだったわけだ。

Nexus7 OS 更新でメモリー容量が半分になってしまった、という話

Android oS 5.0.2 にUpgradeしたのは良いが、メモリー容量が半分になってしまったという話。 2012年に発売され既に製造終了のNexus 7であるが、Googleから販売されただけに最新OS Lollipop(5.0.2)がPushされてきた。 勿論喜んでアップデートしたわけだが、再起動後、データを復旧した後の動きがきわめて遅い。 そのうち「メモリ-容量が足りなので一部機能が使えません。 不要なデータやアプリを削除してください。」などというお知らせが出てしまった。 調べてみると、全部のメモリー容量が6ギガちょっとしかない。  あれ? たしか自分が購入したのは16ギガバイトモデルだったはず。 10ギガバイトもOSのファームウエアにに使われているわけ? インターネット検索してみると、メモリー容量が半分になってしまったなど、同じ問題に直面した方たちが何人もいるようだ。 対応は簡単でファクトリーリセットをかけるとすべてのメモリー領域を認識するようになる。 勿論データーはすっ飛んでしまうわけなのでもう一度リストアをするはめになったが、アカウントにログインするだけでほぼ以前の使用状態まで復帰できるのは便利である。

HP‐12Cのセグメント欠け

自分の持っているHP-12Cは電池がCR2032を2枚使うもので、要はオリジナルではなく、21世紀に入ってから作られたAtmelのマイコンを使ってオリジナルのファームウエアをエミュレートしたものだ。 当然実行速度は速くなっており、形状的にも手軽なのでちょっとしたビジネス計算用にオフィスの机の上に置いてあったのだが、使いだしてから半年もたたないうちにLCDのセグメント欠けが発生するようになった。セグメントが1本、2本とかけていくもので8を表示しようとすると日の代わりにトのような表示になってしまう。 最初は電池を変えるともとに戻ったりしていたのだが、そのうち欠けるセグメントがどんどん増えてきて計算機として用をなさなくなってしまった。 というわけで卓上には48Gを復活させ、12Cのほうは机の引出に投げ込んであった。 最近、整理をした時に出てきたので、どうせ捨てるならその前にばらして中身を見てみよう、と思った。 ゴム足の下のネジ4本と電池室のネジ2本を外すと、上蓋と下蓋に分解できる。 この状態で観てみると、表示用のLCDのFPCの端面が部品実装した配線板に直接張り付けられている。 経験上からHeat Sealという製法で接着されているとわかったので、この状態で電池を入れ、試しにFPCのこの部分をピンセットの先で配線板に押し付けてみると、一部の表示が復活する。押す場所によって復活するセグメントの位置も変わる。 工程上では加熱圧着することによって接続をとることになっているが、接続部分がはがれかかっているらしい。 そこで 小型のHeat Gunを使ってこの部分を温めながら、マイナスドライバーの先で、FPCの接続部分をまんべんなく押してみた。 さめるのを待って電源ONしてみたらセグメント欠けは無くなっており、通常作動に戻っている。 組み立てなおしてHP12Cしっかり復活してしまった。 2か月ほど経過したが問題なし。 近頃のHPの電卓は品質管理が良くないね。

SparkFun.com’s dumpster dive

Sparkfun’s dumpster dive is once in a few months event when they prep a limited amount of red boxes filled with rejects and some left over that they don’t feel as retail quality merchandize for various reasons, and put them on sale. I bought these boxes on two occasions so far and I am reasonably pleased. Let me share my experience. Sale. The sale takes place on select Fridays. In both occasions I learned about the sale when I visited the site to check out their blog section for new products, which they announce on every Friday morning. The sale event will occur at 12 noon MT. The whole lot will […]

ハノイの塔を解く(Solving Towers of Hanoi)

ハノイの塔というのはパズルだが、リカージョンというアルゴリズムによくなじむのでプログラミングの教科書に出ていることがある。 自分がこれを見たのは”Oh Pascal!”というパスカルの入門書で30年くらい前に発行された学生向けの教科書だ。 パズルの内容はこんな具合。 1.3本の棒が立っている。仮にこれを右からA,B,Cとする。 2.Aには真ん中に穴のあいた円盤が積み上げてある。円盤の直径は底にあるものが一番大きく、上に行くほど小さくなる。 3.一度に一個ずつこのこの円盤を取り出して他の棒に移すことができる。最終的には全部の円盤をCに移したい。 4.ただし、大きな円盤を小さな円盤の上に置くことはできない。 Hanoiの塔というのはこの”金の”円盤を64枚積み上げたものだそうで、このパズルが解けたときには世の中が終焉を迎える、というオトロしい落ちがついている。 これをコンピュータープログラムを使って解くとどうなるか、という話である。 パターンを見つけるために少ない枚数で実際に解くことを試みる。 Disk(円盤)の数が一枚の時には簡単だ。円盤をAからCに移せばよい。 Move(1disk from A to C) = Move a Disk from A to C では2枚の時にはどうなるか Move(2disks from A to C) = Move a Disk from A to B Move a Disk from A to C Move a Disk from B to C ここで棒Bを使うことになる。 つまり、まず上の円盤を棒AからBに移し、下の円盤をAからCへ、最後にBに移してあった円盤をCに移して完成だ。 Move (2 disks from A to C) = Move (2 disks from A to C using B) 3枚はどうか。 すでに2枚を動かす方法はわかっているのその方法を使ってまずは2枚をBに動かしておき、最後の一枚をAからCに移動、さらに2枚を動かす方法を使ってBからCに移動するという方法で動かせる。 Move(3 disks from A to C using B) = Move(2 disks from A to B using C) Move a disk from A to C Move (2 disks from B to c using A) 4枚の場合も同様に考えられるのでパターンとしては (n-1)枚の円盤をAからBに移す。最後の円盤をAからCに移動し、その後(n-1)枚の円盤をBからCに移す。 ということになる。 Move (n disks from A to C using B) […]