每日涉猎技术点存档(2019年02月)
2019年3月26日
解除SVN源代碼管理綁定:在要解除版本控制的文件夾右鍵TortoiseSVN–>Export–>選擇同一個文件夾(目標文件夾一定要和你右擊的文件夾是同一個文件夾),這時就會出現“是否解除版本控制”的對話框。?
?2019年3月24日
.net測試數據生成庫
- loresoft/DataGenerator:Automatically generate data for an object
- MisterJames/GenFu:GenFu is a library you can use to generate realistic test data. It is composed of several property fillers that can populate commonly named properties through reflection using an internal database of values or randomly created data. You can override any of the fillers, give GenFu hints on how to fill them.
.net常用Mock庫
- Moq: the original Arrange-Act-Assert mocking library for .NET, and a big source of inspiration for NSubstitute.
- nsubstitute:A friendly substitute for .NET mocking libraries. https://nsubstitute.github.io
- FakeItEasy: another modern mocking library for .NET. If you're not sold on NSubstitute's syntax, try FIE!
- substitute.js: a mocking library for TypeScript inspired by NSubstitute's syntax (@fluffy-spoon/substitute?on NPM)
2019年3月1日
查看框架版本.bat
reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP" /s /v version | findstr /i version | sort /+26 /rset /p a=2019年2月28日
在線文檔預覽方案-office web apps
微軟office web apps 服務器搭建之在線文檔預覽(一)
微軟office web apps 服務器搭建之在線文檔預覽(二)
如何整合Office Web Apps至自己開發的系統(二)
2019年2月26日
WSL
WSL(Windows上的Linux子系統)的簡單介紹及安裝??https://www.cnblogs.com/skyshalo/p/7724072.html
Windows10內置Linux子系統??https://www.cnblogs.com/huaxingtianxia/p/7999552.html
?
Kafka .net client?
.NET?https://cwiki.apache.org/confluence/display/KAFKA/Clients#Clients-.NET
RDKAFKA-DOTNET
rdkafka-dotnet是一個基于C++客戶端librdkafka的.Net客戶端,官方對librdkafka的介紹是
Robust high performance C/C++ library with full protocol support
總之就是健壯/高性能/全協議/全版本支持,可想而知基于librdkafka衍生的.Net客戶端也不會差。 使用rdkafka-dotnet需要修改host文件,其他的Producer/Consumer的代碼都非常簡潔易懂,消費集群也非常容易配置,而且使用這個后根本就沒碰到過Consumer接收不到消息的情況。
kafka學習 (三)csharp開發
kafka消息系統-Net開發庫的使用與選擇
消息隊列 Kafka 的基本知識及 .NET Core 客戶端
Kafka .NET操作
confluentinc/confluent-kafka-dotnet
2019年2月25日
https://mesosphere.com/blog/2017/05/30/solving-infrastructure-challenges-fast-data-applications/
Mesosphere DC/OS:
簡化數據服務的部署和運維
Mesosphere致力于簡化現代化彈性分布式軟件的開發. Mesosphere DC/OS是市面上唯一一個在生產環境中被驗證的能夠同時運行容器和數據服務的平臺。DC/OS 能夠提高很多數據服務的部署速度,并簡化它們的運維。這些數據服務包括數據庫,消息隊列,大數據分析引擎等等。
DC/OS的核心是Apache Mesos?,一個分布式系統內核。 它擁有一個兩層資源調度機制,使得分布式系統之間能夠更好的分享集群資源。正因為有了兩層調度機制,使得DC/OS能夠在和其他容器編排系統(Kubernetes,Docker Swarm)的對比中脫穎而出。它簡化了數據服務的部署和運維,并且大幅度提高了資源利用率。
2019年2月23日
網頁灰色
<style type="text/css">html {filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale"); /* Firefox 3.5+ */filter: gray; /* IE6-9 */-webkit-filter: grayscale(100%); /* Chrome 19+ & Safari 6+ */}</style> View Code2019年2月21日
Power BI
BIWORK 的微軟 BI 博客 https://ask.hellobi.com/blog/id-biwork
Power BI是微軟最新的商業智能(BI)概念,它包含了一系列的組件和工具。
Power BI的核心理念就是讓我們用戶不需要強大的技術背景,只需要掌握Excel這樣簡單的工具就能快速上手商業數據分析及可視化。
https://www.jianshu.com/p/7c0aa19127b3
Microsoft BI
從技術層面上來講, Microsoft BI由三大部分以及其他的協同平臺組成, 它們分別是SSIS, SSAS, SSRS以及與office, sharepoint產品.
通常我們所說的Microsoft BI, 指的主要是SSIS, SSAS, SSRS三大部分
ETL是數據抽取(Extract)、清洗(Cleaning)、轉換(Transform)、裝載(Load)的過程。
ETL是用SSIS來實現的,也就是說SSIS是ETL工具。而SSAS是建立多維數據集,SSRS是建立前臺報表。
SSIS:Sql Server Integration Services
SSAS:SQL SERVER Analysis Services
SSRS:SQL Server Reporting Services
2019年2月18日
C# 實現 Snowflake算法
參考地址:
- https://blog.csdn.net/w200221626/article/details/52064976
- https://www.cnblogs.com/yxlblogs/p/10195664.html
?
從圖上看除了第一位不可用之外其它三組均可浮動站位,據說前41位就可以支撐到2082年,10位的可支持1023臺機器,最后12位序列號可以在1毫秒內產生4095個自增的ID。 在多線程中使用要加鎖。 /// <summary>/// 動態生產有規律的ID/// </summary>public class Snowflake{private static long machineId;//機器IDprivate static long datacenterId = 0L;//數據IDprivate static long sequence = 0L;//計數從零開始private static long twepoch = 687888001020L; //唯一時間隨機量private static long machineIdBits = 5L; //機器碼字節數private static long datacenterIdBits = 5L;//數據字節數public static long maxMachineId = -1L ^ -1L << (int)machineIdBits; //最大機器IDprivate static long maxDatacenterId = -1L ^ (-1L << (int)datacenterIdBits);//最大數據IDprivate static long sequenceBits = 12L; //計數器字節數,12個字節用來保存計數碼 private static long machineIdShift = sequenceBits; //機器碼數據左移位數,就是后面計數器占用的位數private static long datacenterIdShift = sequenceBits + machineIdBits;private static long timestampLeftShift = sequenceBits + machineIdBits + datacenterIdBits; //時間戳左移動位數就是機器碼+計數器總字節數+數據字節數public static long sequenceMask = -1L ^ -1L << (int)sequenceBits; //一微秒內可以產生計數,如果達到該值則等到下一微妙在進行生成private static long lastTimestamp = -1L;//最后時間戳private static object syncRoot = new object();//加鎖對象static Snowflake snowflake;public static Snowflake Instance(){if (snowflake == null)snowflake = new Snowflake();return snowflake;}public Snowflake(){Snowflakes(0L, -1);}public Snowflake(long machineId){Snowflakes(machineId, -1);}public Snowflake(long machineId, long datacenterId){Snowflakes(machineId, datacenterId);}private void Snowflakes(long machineId, long datacenterId){if (machineId >= 0){if (machineId > maxMachineId){throw new Exception("機器碼ID非法");}Snowflake.machineId = machineId;}if (datacenterId >= 0){if (datacenterId > maxDatacenterId){throw new Exception("數據中心ID非法");}Snowflake.datacenterId = datacenterId;}}/// <summary>/// 生成當前時間戳/// </summary>/// <returns>毫秒</returns>private static long GetTimestamp(){return (long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;}/// <summary>/// 獲取下一微秒時間戳/// </summary>/// <param name="lastTimestamp"></param>/// <returns></returns>private static long GetNextTimestamp(long lastTimestamp){long timestamp = GetTimestamp();if (timestamp <= lastTimestamp){timestamp = GetTimestamp();}return timestamp;}/// <summary>/// 獲取長整形的ID/// </summary>/// <returns></returns>public long GetId(){lock (syncRoot){long timestamp = GetTimestamp();if (Snowflake.lastTimestamp == timestamp){ //同一微妙中生成IDsequence = (sequence + 1) & sequenceMask; //用&運算計算該微秒內產生的計數是否已經到達上限if (sequence == 0){//一微妙內產生的ID計數已達上限,等待下一微妙timestamp = GetNextTimestamp(Snowflake.lastTimestamp);}}else{//不同微秒生成IDsequence = 0L;}if(timestamp < lastTimestamp){throw new Exception("時間戳比上一次生成ID時時間戳還小,故異常");}Snowflake.lastTimestamp = timestamp; //把當前時間戳保存為最后生成ID的時間戳long Id = ((timestamp - twepoch) << (int)timestampLeftShift) | (datacenterId << (int)datacenterIdShift) | (machineId << (int)machineIdShift) | sequence;return Id;}} View Code2019年2月15日
Docker查看容器IP
docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" containername
CMD? TYPE命令
C:\Users\N3verL4nd>type /?
顯示文本文件的內容。
TYPE [drive:][path]filename
C:\Users\N3verL4nd>
在批處理中配合參數 /c /k /s
/c? 執行 String 指定的命令,執行完后停止,會退出。
/k?執行 String 指定的命令并繼續,運行完會保持當前運行窗口及環境變量。
/s?修改 /c 或 /k 后對 String 的處理。
?
做測試的時候學到的一項用法,type in.txt | test.exe,即利用windows管道把in.txt的內容作為test的輸入(一般我們都利用重定向這樣測試的吧:test.exe < in.txt)想知道原理,搜到一個很有趣的東東:
fileA.jpg圖片文件,fileB.rar為壓縮文件,現在通過CMD type 命令合并這兩個文件如下:
type fileA.jpg >> file.jpg
type fileB.rar >> file.jpg
把圖片文件先寫入,不然無法顯示出圖片來。因為圖像瀏覽器在讀取文件的時候,首先看到是圖片的字節碼,就把它顯示出來了,如果相反就讀的字節碼不是圖片,所以就無法實現披著羊皮的狼啊。哈哈
2019年2月8日
連接Redis測試代碼
using System; using StackExchange.Redis;namespace TestRedisConnect {class Program{static void Main(string[] args){var redis = ConnectionMultiplexer.Connect("10.0.75.1:6379");var db = redis.GetDatabase();var name = db.StringGet("string1");Console.WriteLine(name);}} }?
2019年2月7日
Docker安裝redis并掛載配置與文件
- 首先去redis獲取對應版本的配置文件redis.conf
- 將 bind 127.0.0.1注釋,daemonize yes注釋掉,如果需要redis密碼則找到requirepass 并填上你的密碼
- 并建立好對應文件夾, usr/redis. usr/redis/data,將redis.conf放入 usr/redis中
- 最后docker run -d --privileged=true -p 6379:6379 -v /usr/redis/redis.conf:/etc/redis/redis.conf -v /usr/redis/data:/data --name redis1 redis:4.0 redis-server /etc/redis/redis.conf --appendonly yes
- -p 6379:6379:把容器內的6379端口映射到宿主機6379端口
- -v /usr/redis/redis.conf:/etc/redis/redis.conf:把宿主機配置好的redis.conf放到容器內的這個位置中
- -v /usr/redis/data:/data:把redis持久化的數據在宿主機內顯示,做數據備份
- redis-server /etc/redis/redis.conf:這個是關鍵配置,讓redis不是無配置啟動,而是按照這個redis.conf的配置啟動
- –appendonly yes:redis啟動后數據持久化
?
轉載于:https://www.cnblogs.com/WangHuaiSheng/p/DayTag201902.html
總結
以上是生活随笔為你收集整理的每日涉猎技术点存档(2019年02月)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: django的权限认证:登录和退出。au
- 下一篇: 《人月神话》阅读体会(二)