在Windows PowerShell和Linux Bash上可视化您的实时血糖值和Git提示-程序员宅基地

技术标签: python  java  ubuntu  linux  windows  

image

My buddy Nate become a Type 1 Diabetic a few weeks back. It sucks...I've been one for 25 years. Nate is like me - an engineer - and the one constant with all engineers that become diabetic, we try to engineer our ways out of it. ;) I use an open source artificial pancreas system with an insulin pump and continuous glucose system. At the heart of that system is some server-side software called Nightscout that has APIs for managing my current and historical blood sugar. It's updated every 5 minutes, 24 hours a day.

几周前,我的好友Nate成为1型糖尿病患者。 糟透了...我已经25年了。 内特(Nate)就像我一样-一位工程师-并且是所有患有糖尿病的工程师中的一个不变的人,我们试图从中脱颖而出。 ;)我使用带有胰岛素泵和连续葡萄糖系统的开源人工胰腺系统。 该系统的核心是一些称为Nightscout的服务器端软件,该软件具有用于管理我当前和历史血糖的API。 每天24小时每5分钟更新一次

I told Nate to get NightScout set up ASAP and start playing with the API. Yesterday Nate added his blood sugar to his terminal prompt!

我告诉Nate尽快设置NightScout并开始使用API​​。 昨天内特(Nate)在终端提示中添加了血糖

I love this. He uses Linux, but I use Linux (Ubuntu) on Windows 10, so I wanted to see if I could run his little node up from Windows (I'll make it a Windows service).

我喜欢这个。 他使用Linux,但是我在Windows 10上使用Linux(Ubuntu),所以我想看看是否可以从Windows运行他的小节点(我将其设为Windows服务)。

Yes, you can run cron jobs under Windows 10's Ubuntu, but only when there is an instance of bash running (the Linux subsystem shuts down when it's not used) and upstart doesn't work yet. I could run it from the .bashrc or use various hacks/workarounds to keep WSL (Windows Subsystem for Linux) running, but the benefit of running this as a Windows Service is that I can see my blood sugar in all prompts on Windows, like Powershell as well!

是的,您可以在Windows 10的Ubuntu下运行cron作业,但仅当有一个bash实例正在运行时(Linux子系统在不使用时关闭),并且upstart尚不起作用。 我可以从.bashrc运行它,也可以使用各种技巧/变通办法使WSL(Linux的Windows子系统)保持运行,但是将其作为Windows服务运行的好处是,我可以在Windows的所有提示中看到血糖值例如Powershell也是如此!

You can install with

您可以安装

npm install -g nightscout-ps1

And then run with

然后运行

nightscout-ps1 -n "my-nightscout-url.com" -c ~/.nightscout-ps1.env

I'll use the "non-sucking service manager (NSSM)" to run Nate's non-Windows-service node app as a Windows service. I ran "nssm install nsprompt" and get this GUI. Then I add the --nightscout parameter and pass in my Nightscout blood sugar website. You'll get an error immediately when the service runs if this is wrong.

我将使用“非吸吮服务管理器(NSSM)”将Nate的非Windows服务节点应用程序作为Windows服务运行。 我运行了“ nssm install nsprompt”并获得了此GUI。 然后,添加--nightscout参数,并将其输入Nightscout血糖网站。 如果这是错误的服务运行时,您将立即得到一个错误。

NSSM Service Installer

From the Log on tab, make sure the service is logged on as you. I login with my MSA (Microsoft Account) so I used my email address. This is to ensure that with the app writes to ~ on Windows, it's putting your sugars in c:\users\LOGGEDINUSER\.

在“登录”选项卡上,确保该服务已随您登录。 我使用MSA(Microsoft帐户)登录,所以我使用了我的电子邮件地址。 这是为了确保应用程序在Windows上写入〜时,可以将您的操作写入c:\ users \ LOGGEDINUSER \。

Next, run the service with "sc start NSPrompt" or from the Services GUI.

接下来,使用“ sc start NSPrompt”或从服务GUI运行服务。

My sugar updater runs in a Windows Service

Nate's node app gets blood sugar from Nightscout and puts it in ~/.bgl-cache. However, to be clear since I'm running it from the Windows side while changing the Bash/Ubuntu on Windows prompt from Linux, it's important to note that from WIndows ~/ is really c:\users\LOGGEDINUSER\ so I changed the Bash .profile to load the values from the Windows mnt'ed drives like this:

Nate的节点应用程序从Nightscout中获取血糖并将其放入〜/ .bgl缓存中。 但是,要明确一点,因为我是从Windows端运行它从Linux更改Windows上的Windows提示符下的Bash / Ubuntu时,需要注意的是,从Windows〜 /实际上是c:\ users \ LOGGEDINUSER \,所以我更改了Bash .profile来从Windows mnt驱动器加载值,如下所示:

eval "$(cat /mnt/c/Users/scott/nightscout-ps1.env)"

Also, you need to make sure that you're using a Unicode font in your console. For example, I like using Fira Code Light, but it doesn't have a single character ⇈ double-up arrow (U+21C8), so I replaced it with two singles. You get the idea. You need a font that has the glyphs you want and you need those glyphs displaying properly in your .profile text file.

另外,您需要确保在控制台中使用Unicode字体。 例如,我喜欢使用Fira Code Light,但它没有单个字符⇈双向箭头(U + 21C8),因此我将其替换为两个单打。 你明白了。 您需要一种具有所需字形的字体,并且您需要这些字形在.profile文本文件中正确显示。

You'll need a Unicode Font

And boom. It's glorious. My current blood sugar and trends in my prompt. Thanks Nate!

和繁荣。 这是光荣的。 我当前的血糖和提示趋势。 谢谢内特!

My sugars!

So what about PowerShell as well? I want to update that totally different prompt/world/environment/planet from the same file that's updated by the service. Also, I already have a custom prompt with Git details since I use Posh-Git from Keith Dahlby (as should you).

那么,PowerShell又如何呢? 我想从服务更新的同一文件中更新完全不同的提示/世界/环境/行星。 另外,由于我使用的是Keith Dahlby的Posh-Git (我也应该这样做),因此我已经有了有关Git详细信息的自定义提示。

I can edit $profile.CurrentUserAllHosts with "powershell_ise $profile.CurrentUserAllHosts" and add a prompt function before "import-module posh-git."

我可以使用“ powershell_ise $ profile.CurrentUserAllHosts”编辑$ profile.CurrentUserAllHosts,并在“ import-module posh-git”之前添加提示功能。

Here's Nate's same prompt file, translated into a PowerShell prompt() method, chained with PoshGit. So I can now see my Git Status AND my Blood Sugar. My two main priorities!

这是Nate的相同提示文件,已转换为PowerShell PossGit的PowerShell hint()方法。 现在,我可以看到我的Git状态和血糖。 我的两个主要优先事项!

NOTE: If you don't use posh-git, you can remove the "WriteVcsStatus" line and the "Import-Module posh-git" and you should be set!

注意:如果您不使用posh-git,则可以删除“ WriteVcsStatus”行和“ Import-Module posh-git”,然后进行设置!

function prompt {
    
Get-Content $ENV:USERPROFILE\.nightscout-ps1.env | %{$bgh = @{}} {if ($_ -match "(.*)=""(.*)""") {$bgh[$matches[1]]=$matches[2].Trim();}}
$trend = "?"

switch ($bgh.latest_entry_direction)
{
"DoubleUp" {$trend="↑↑"}
"SingleUp" {$trend="↑"}
"FortyFiveUp" {$trend=""}
"Flat" {$trend="→"}
"FortyFiveDown" {$trend=""}
"SingleDown" {$trend="↓"}
"DoubleDown" {$trend="↓↓"}
}

$bgcolor = [Console]::ForegroundColor.ToString()
if ([int]$bgh.latest_entry_mgdl -ge [int]$bgh.settings_thresholds_bg_target_top) {
$bgcolor = "Yellow"
} ElseIf ([int]$bgh.latest_entry_mgdl -le [int]$bgh.settings_thresholds_bg_target_bottom) {
$bgcolor = "Red"
} Else {
$bgcolor = "Green"
}

Write-Host $bgh.latest_entry_mgdl -NoNewline -ForegroundColor $bgcolor
Write-Host $trend" " -NoNewline -ForegroundColor $bgcolor
[Console]::ResetColor()

$origLastExitCode = $LASTEXITCODE
Write-Host $ExecutionContext.SessionState.Path.CurrentLocation -NoNewline
Write-VcsStatus
$LASTEXITCODE = $origLastExitCode
"$('>' * ($nestedPromptLevel + 1)) "
}
Import-Module posh-git

Very cool stuff.

很酷的东西。

Blood Sugar and Git in PowerShell!

This concept, of course, could be expanded to include your heart rate, FitBit steps, or any health related metrics you'd like! Thanks Nate for the push to get this working on Windows!

当然,可以将这个概念扩展为包括您的心率,FitBit步骤或您想要的任何与健康相关的指标! 感谢Nate推动在Windows上运行该功能!

翻译自: https://www.hanselman.com/blog/visualizing-your-realtime-blood-sugar-values-and-a-git-prompt-on-windows-powershell-and-linux-bash

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cunfuxiao7305/article/details/109051441

智能推荐

机器学习模型评分总结(sklearn)_model.score-程序员宅基地

文章浏览阅读1.5w次,点赞10次,收藏129次。文章目录目录模型评估评价指标1.分类评价指标acc、recall、F1、混淆矩阵、分类综合报告1.准确率方式一:accuracy_score方式二:metrics2.召回率3.F1分数4.混淆矩阵5.分类报告6.kappa scoreROC1.ROC计算2.ROC曲线3.具体实例2.回归评价指标3.聚类评价指标1.Adjusted Rand index 调整兰德系数2.Mutual Informa..._model.score

Apache虚拟主机配置mod_jk_apache mod_jk 虚拟-程序员宅基地

文章浏览阅读344次。因工作需要,在Apache上使用,重新学习配置mod_jk1. 分别安装Apache和Tomcat:2. 编辑httpd-vhosts.conf: LoadModule jk_module modules/mod_jk.so #加载mod_jk模块 JkWorkersFile conf/workers.properties #添加worker信息 JkLogFil_apache mod_jk 虚拟

Android ConstraintLayout2.0 过度动画MotionLayout MotionScene3_android onoffsetchanged-程序员宅基地

文章浏览阅读335次。待老夫kotlin大成,扩展:MotionLayout 与 CoordinatorLayout,DrawerLayout,ViewPager 的 交互众所周知,MotionLayout 的 动画是有完成度的 即Progress ,他在0-1之间变化,一.CoordinatorLayout 与AppBarLayout 交互时,其实就是监听 offsetliner 这个 偏移量的变化 同样..._android onoffsetchanged

【转】多核处理器的工作原理及优缺点_多核处理器怎么工作-程序员宅基地

文章浏览阅读8.3k次,点赞3次,收藏19次。【转】多核处理器的工作原理及优缺点《处理器关于多核概念与区别 多核处理器工作原理及优缺点》原文传送门  摘要:目前关于处理器的单核、双核和多核已经得到了普遍的运用,今天我们主要说说关于多核处理器的一些相关概念,它的工作与那里以及优缺点而展开的分析。1、多核处理器  多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核),此时处理器能支持系统总线上的多个处理器,由总..._多核处理器怎么工作

个人小结---eclipse/myeclipse配置lombok_eclispe每次运行个新项目都需要重新配置lombok吗-程序员宅基地

文章浏览阅读306次。1. eclipse配置lombok 拷贝lombok.jar到eclipse.ini同级文件夹下,编辑eclipse.ini文件,添加: -javaagent:lombok.jar2. myeclipse配置lombok myeclipse像eclipse配置后,定义对象后,直接访问方法,可能会出现飘红的报错。 如果出现报错,可按照以下方式解决。 ..._eclispe每次运行个新项目都需要重新配置lombok吗

【最新实用版】Python批量将pdf文本提取并存储到txt文件中_python批量读取文字并批量保存-程序员宅基地

文章浏览阅读1.2w次,点赞31次,收藏126次。#注意:笔者在2021/11/11当天调试过这个代码是可用的,由于pdfminer版本的更新,网络上大多数的语法没有更新,我也是找了好久的文章才修正了我的代码,仅供学习参考。1、把pdf文件移动到本代码文件的同一个目录下,笔者是在pycharm里面运行的项目,下图中的x1文件夹存储了我需要转换成文本文件的所有pdf文件。然后要在此目录下创建一个存放转换后的txt文件的文件夹,如图中的txt文件夹。2、编写代码 (1)导入所需库# coding:utf-8import ..._python批量读取文字并批量保存

随便推点

Scala:访问修饰符、运算符和循环_scala ===运算符-程序员宅基地

文章浏览阅读1.4k次。http://blog.csdn.net/pipisorry/article/details/52902234Scala 访问修饰符Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。如果没有指定访问修饰符符,默认情况下,Scala对象的访问级别都是 public。Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层_scala ===运算符

MySQL导出ER图为图片或PDF_数据库怎么导出er图-程序员宅基地

文章浏览阅读2.6k次,点赞7次,收藏19次。ER图导出为PDF或图片格式_数据库怎么导出er图

oracle触发器修改同一张表,oracle触发器中对同一张表进行更新再查询时,需加自制事务...-程序员宅基地

文章浏览阅读655次。CREATE OR REPLACE TRIGGER Trg_ReimFactBEFORE UPDATEON BP_OrderFOR EACH ROWDECLAREPRAGMA AUTONOMOUS_TRANSACTION;--自制事务fc varchar2(255);BEGINIF ( :NEW.orderstate = 2AND :NEW.TransState = 1 ) THENBEG..._oracle触发器更新同一张表

debounce与throttle区别及其应用场景_throttle和debounce应用在哪些场景-程序员宅基地

文章浏览阅读513次。目录概念debouncethrottle实现debouncethrottle应用场景debouncethrottle场景举例debouncethrottle概念debounce字面理解是“防抖”,何谓“防抖”,就是连续操作结束后再执行,以网页滚动为例,debounce要等到用户停止滚动后才执行,将连续多次执行合并为一次执行。throttle字面理解是“节流”,何谓“节流”,就是确保一段时..._throttle和debounce应用在哪些场景

java操作mongdb【超详细】_java 操作mongodb-程序员宅基地

文章浏览阅读526次。regex() $regex 正则表达式用于模式匹配,基本上是用于文档中的发现字符串 (下面有例子)注意:若未加 @Field("名称") ,则识别mongdb集合中的key名为实体类属性名。也可以对数组进行索引,如果被索引的列是数组时,MongoDB会索引这个数组中的每一个元素。也可以对整个Document进行索引,排序是预定义的按插入BSON数据的先后升序排列。save: 若新增数据的主键已经存在,则会对当前已经存在的数据进行修改操作。_java 操作mongodb

github push 推送代码失败. 使用ssh rsa key. remote: Support for password authentication was removed._git push remote: support for password authenticati-程序员宅基地

文章浏览阅读1k次。今天push代码到github仓库时出现这个报错TACKCHEN-MB0:tc-image tackchen$ git pushremote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.remote: Please see https://github.blog/2020-12-15-token-authentication_git push remote: support for password authentication was removed on august 1