Wednesday Coffee
seen from United States
seen from Kyrgyzstan
seen from United States

seen from United States
seen from China
seen from United States
seen from Canada
seen from France
seen from United States

seen from United States
seen from Malaysia

seen from United States
seen from Honduras

seen from United States

seen from United States
seen from Australia
seen from Singapore
seen from United States

seen from United States

seen from United States
Wednesday Coffee

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
8. Mai 2022
Wortschatzrenovierung
Vor ein paar Monaten habe ich meine Frankfurter-Rundschau-Kolumnen des vergangenen Jahres zwei ungefähr 20-Jährigen gezeigt und sie gebeten, in einem Googledoc alle Wörter einzutragen, die ihnen angestaubt vorkommen. Neue Wörter erkennt man ja ganz leicht, aber die Ausgestorbenheit alter Wörter ist leider unsichtbar, das ist genau wie bei Kleidungsstücken. Ich möchte nicht klingen, als wäre ich selbst 20, aber ich hätte gern so eine Art neutralen Mittelweg. Es stört mich selbst oft bei den Texten von Menschen, die älter sind als ich, dass ich mit dem Inhalt vielleicht einverstanden sein könnte, wenn die Wörter nicht so einen langen Bart hätten.
Das traurigste Ergebnis dieser Sammlung ist, dass ich viele Jahre lang umsonst “Netz” statt Internet geschrieben habe: “Auf jeden fall internet statt netz, netz sagen alte leute weil sie denken das ist moderner aber kein junger mensch sagt das unironisch“. Dabei habe ich das immer nur gemacht, weil mir das Wort Internet zu staubig vorkam! Und irgendwie muss man ja sagen zu den ganzen Kabeln, vor allem, wenn man Kolumnistin für Internetthemen ist und nicht für was Zeitloseres, so wie Quastenflosser.
Das Googledoc hat am Ende nur drei Seiten – sicher nicht, weil es nicht mehr zu meinem vergilbenden Wortschatz zu sagen gäbe, aber ich habe den beiden Kritikerinnen halt nur ein einziges Kolumnenjahr gezeigt. Und schon diese drei Seiten sind mehr, als ich beim Schreiben neuer Texte im Kopf behalten kann. Die Sammlung hat mir also bisher gar nicht so viel genützt.
Aber heute ist der Tag, an dem mich der Tatendrang packt, und ich finde heraus, dass es bei Googledocs eine Angelegenheit namens “Apps Script” gibt. Man kann damit, soweit ich es bisher verstehe, ähnliche Dinge machen wie mit Word-Makros.
Es gelingt mir auch schnell, ein paar Apps-Script-Testzeilen zum Laufen zu bringen. Aber weil mich das wieder an die Existenz der “Extensions”-Abteilung erinnert hat, sehe ich nach, ob es das, was ich suche, vielleicht schon fertig gibt. Es existiert, und im Screenshot oben habe ich es auch bereits eingerichtet: Die Extension Writer’s Highlighter nimmt eine Wortliste aus einem Google Spreadsheet und hebt diese Wörter dann im Text von Googledocs hervor.
Ich mache aus der Wortliste ein Spreadsheet und zeige dem Writer’s Highlighter, wo die Liste liegt. Schon funktioniert es und ich muss mir nichts mehr merken:
Es hilft leider nur bei Texten, die ich in Googledocs schreibe. Das sind zwar fast alle, aber meine Techniktagebuchbeiträge entstehen nicht dort, sondern direkt im Tumblr-Editor. Hier werde ich also vermutlich noch ein paar Jahre lang häufig “vermutlich” und “häufig” und vielleicht sogar “Netz” sagen.
(Kathrin Passig)
[GAS][slack][ノンプロ研]日本語を投げると変数名を提案してくれる bot
概要と経緯
サクッとリーダブルな変数名を決めたい。 いつもお世話になってるサイト「codic」へアクセスが面倒なので、できれば slack の webhook とBots を使って同じような機能を実装できればと企んで。 API を公開してくれてすごく助かりました。 ノンプロ研の定例会で「リーダブルコード」の概念ができ、かっこいい変数名を考えるのは楽しいけれど、サクッとできるだけ簡単に変数名を決めたいから。
まとめとコード
API 関連のコードをコピペで以外でやるのが初めてだったため、fetchOpt 部分をどのように書くのかがまったくわからず、いろんなサイトを渡り歩きました。 特定のチャンネルで、Bots に対してメンションを飛ばされた場合に動作するようにしています。 API はここから取得可能です。 ※要ログイン
その他の設定は、過去記事を参照してください。
〈outgoing-webhook の設定〉 etau the non programmer coder — [GAS][slack]発信webフック (outgoing-webhook) を設定し、Slack チャンネル内のメッセージ・パラメータを取得する
〈プロパティサービスの利用〉 etau the non programmer coder — [GAS]Function を超えて、プロパティサービスを利用する
〈Bots の設定〉 etau the non programmer coder — [GAS][slack]GAS を使って slack の Bots に発言させる
/* webhook でメッセージを拾う */ function doPost(e) { /* パラメーターを取得し、トークンが不一致なら処理終了 */ var token = e.parameter.token; var properties = PropertiesService.getScriptProperties(); if (token != properties.getProperty('SLACK_TOKEN')) { return; } var text = e.parameter.text; var keywords = text.substring(13); // メンション部分を削除 variableConstantNamingTool(keywords); } /* codic API を使ってキャメルケースとアッパーケース両方の変数名を取得 https://api.codic.jp/v1/engine/translate.json?&text=こんにちわ世界&casing=camel これを投げると「こんにちわ世界」のキャメルケースとが返ってくる*/ function variableConstantNamingTool(keywords) { var codicUrl = 'https://api.codic.jp/v1/engine/translate.json?'; var properties = PropertiesService.getScriptProperties(); var casingArr = [[':dromedary_camel:','camel'], [':snake:', 'upper underscore']]; var message = 'こんな変数名はいかがですか?'; for (var i = 0; i < casingArr.length; i++) { var fetchUrl = codicUrl + '&text=' + keywords +'&casing=' + casingArr[i][1]; var fetchOpt = {'headers' : {'Authorization' : 'Bearer ' + properties.getProperty('CODIC_TOKEN')} }; var response = UrlFetchApp.fetch(fetchUrl, fetchOpt); var results = JSON.parse(response.getContentText()); var result = results[0].translated_text; // 必要な結果だけを抽出 message += '\n' + casingArr[i][0] + ' ' + result; } sendMessageFromBot(message); } /* Bots からチャンネルへメッセージを返信 ※投稿するチャンネルに Bots の参加が必要 Library:M3W5Ut3Q39AaIwLquryEPMwV62A3znfOO*/ function sendMessageFromBot(message) { var properties = PropertiesService.getScriptProperties(); var slackApp = SlackApp.create(properties.getProperty('SLACK_BOT_TOKEN')); // bot のトークン var channelId = properties.getProperty('SLACK_CHANNEL'); // 投稿したいチャンネルの ID var options = {as_user: true}; slackApp.postMessage(channelId, message, options); }
こんな感じで返ってくるよ、かわいい。
参照サイト
API | codic Google Apps ScriptでREST APIを使って郵便番号住所変換スプレッドシート関数を作る Google App Script の UrlFetchApp の 例外ハンドリングについて | Monotalk Authorization Bearer ヘッダを用いた認証 API の実装 - げっとシステムログ
changing the exchange
Every year, my job does a holiday gift exchange. And every year, we have a debate about using some online service or drawing names out of a Santa hat. This year, I did something different:
The problem with picking a name out of a hat, besides how long that takes, is that people might draw their own name, or at least end up in self-contained "chains" of only a few participants. The ideal, of course, is a complete circle (d > b > g > a > c > e > f > d).
Let's start by extracting a list of names, or in this case, email addresses, from a spreadsheet (with Google Apps Script).
About a year ago, I came across a Numberphile video explaining an amazing analogue way to do it, which I'm reproducing here in code. First, on each piece of paper, write a person's name (above). Shuffle (below).
Then, copy the cards to make two identical stacks. Simply move the top card of one stack to the bottom, and you're left with guaranteed-unique pairs.
Of course, with physical cards, this means you need to see the names, so instead, you'd need to pre-duplicate them. That is, write the names twice on each card before shuffling, and then cut the cards in half - all face-down.
Anyway, at this point, in the real-world, you'd still have to hand people their papers. But since my names are all emails, I can just send them out, no third-party needed!
And unlike paper, this digital data info can be automatically validated. So I exported all the pairs to a spreadsheet and obfuscated the emails, showing only a check: green for unique, red for matching.
Feel free to use this code for your own winter gift-giving! tl;dr: use the Fisher-Yates shuffle; use Google Apps Script; use this "fool-proof" Secret Santa method
project: gift exchange
Caffeinated Sunday #coffee #latte #sunday

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Black Friday
Morning Sunday
Tuesday Coffee