Nginx Log

goaccess can track request.

但是记录的ip地址不知道是哪里的。

尝试方式一:命令行加 --enable-geoip--enable-geo-resolver

安装:

sudo apt install geoip-bin geoip-database

无效。

用nano写script

#!/bin/bash
echo "🔍 正在检查 GoAccess 是否安装..."
if ! command -v goaccess &> /dev/null; then
  echo "❌ 未检测到 GoAccess,正在安装旧版本..."
  sudo apt update
  sudo apt install -y goaccess
fi
echo "✅ GoAccess 已安装,检测版本和 GeoIP 支持情况..."
goaccess --version | grep -q "GeoIP2 support"
if [ $? -eq 0 ]; then
  echo "🎉 当前 GoAccess 已支持 GeoIP2,无需修复。"
  exit 0
else
  echo "⚠️ 当前 GoAccess 未启用 GeoIP 支持,准备自动编译带 GeoIP2 的版本..."
fi
# 安装编译依赖
echo "📦 安装依赖中..."
sudo apt update
sudo apt install -y build-essential libncursesw5-dev libgeoip-dev \
  libmaxminddb-dev libtokyocabinet-dev git autotools-dev automake
# 克隆源码
echo "📥 下载 GoAccess 最新源代码..."
cd ~
rm -rf goaccess  # 避免旧版本冲突
git clone https://github.com/allinurl/goaccess.git
cd goaccess
echo "🔧 开始编译 GoAccess with GeoIP2 支持..."
autoreconf -fi
./configure --enable-utf8 --enable-geoip=mmdb
make -j$(nproc)
sudo make install
# 检查是否成功
echo "✅ 编译完成,检查 GeoIP2 支持:"
goaccess --version | grep GeoIP2 && echo "✅ 成功安装带 GeoIP2 支持的 GoAccess!" || echo "❌ 安装失败,请手动检查"
# 提示用户数据库位置
echo ""
echo "📍 你需要下载 MaxMind 的 GeoLite2-City.mmdb 数据库:"
echo "1. 访问:https://dev.maxmind.com/geoip/geolite2/"
echo "2. 注册账号,下载 GeoLite2-City.mmdb"
echo "3. 保存到例如:/usr/local/share/GeoIP/GeoLite2-City.mmdb"
echo ""
echo "📊 之后你可以这样运行 goaccess:"
echo "  zcat /var/log/nginx/access.log.*.gz | goaccess \\"
echo "    --log-format=COMBINED \\"
echo "    --geoip-database /usr/local/share/GeoIP/GeoLite2-City.mmdb \\"
echo "    -o report.html"

download  GeoLite2-City.mmdb 

sudo mkdir -p /usr/local/share/GeoIP
sudo cp GeoLite2-City.mmdb /usr/local/share/GeoIP/
sudo chmod 644 /usr/local/share/GeoIP/GeoLite2-City.mmdb

搞定

14天的hits!




n5321 | 2025年6月11日 23:52

Books App

目的是提供一个平台,可以分享一些对工程师来说有足够价值的书籍,工具等等。

技术框架是django,然后加了几个第三方工具。关键的工具是filer

  1. 前端问题,应该在电机图片之后进入detail page not 显示图片!
  2. django filer里面有若干项配置需要更改
  3. 目前model里3个class,Category,Document, and Note


n5321 | 2025年5月20日 22:04

面包屑

books里面的面包屑工作正常

考虑在tutorials里面也添加一个,自己也记不清怎么添加的。改动的时候发现了若干个问题

1. pycharm打不开db.sqlite, 怎么搞都打不开。不清楚原因。单独找了个管理器看了一下,文件是好的,对于这个project来说,就是打不开。maybe 那天重新clone一下了。不习惯的地方容易打断思路。

2.添加一个面包屑居然还有一点技术含量。因为logic跟books是一样的。最后从里到外都动了一下,从model里面添加mptt,view里面改类方法。

      问题是class里面有一个小bug,暂时没搞清楚。logic清晰,不work,work版的code影响效率。shit!

明天再弄了!



n5321 | 2025年5月19日 22:17

Index Page

AutoEM做了简单的refactoring

考虑做一个homepage。站长之家里面挑了一个漂亮的template,然后做改装。简单代码的地方容易改,可是在内容的地方,要保持完整与重点突出还是有挑战性。

AutoEM online版需要用的功能也都可以代码出来,不确定性更多的是match user demand!思路上应该做一个调整。

  1. 一个产品没有完成就只是零件,零件本身是没有价值的,做太多的零件本质上相当于没有产出。现在有的几个东西都需要进一步完善。完善需要时间!
  2. site的内容做成什么样子需要interact,必须要有user的,应该要fail quick,还是需要去获得反馈。
  3. as an organic being, 必定需要的是evolve,evolve 是过程的核心!dance with dragon就不应该是solo了。
  4. debug,当前的几个部分。把AutoEM and video的部分publish and 找业务!


待update内容

1:所有的filter后面的翻页内容都不属于filter里面的
2:移动版的headline 动态显示的方式有问题。动态显示的内容形成了duplicate code





n5321 | 2025年5月11日 08:20

matlab的问题

matlab作为深入学习的第一个programming language,在thinking上面确实是有很多方便的地方。

语法跟自然语言很像。

toobox里有很多很好用的algorithm

编辑的界面总是让人很清楚自己的state。

但是缺framework!

在dependency 上面全部要靠自己来平衡确实是有一点烦。跟git and powershell的integrate好像也不如python。

原来用matlab写的东西,确实是有想要换到python 平台的想法了!matlab确实是在make thinking clear上有价值,只是做project也确实是烦啊!

在很多细节问题的处理上,matlab确实可控性不够。他可能还是只适合做一个script、thinking工具!

后续改python!

give up frontend 上面的update!

自己多年前写的毫无章法的code确实生猛!简直就是个天才!

refactoring AutoEM,内部的逻辑结构比一个blog、tutorial这种复杂多了!需要深入思考!


所以 MATLAB 更擅长干嘛?

MATLAB 超适合:

  • 快速搭建算法原型

  • 做仿真、控制系统、信号处理

  • 写论文/科研用的验证脚本

和 Simulink 联动搞模型


    这就看你目的是什么:

            写大型系统、长期维护的代码 → ❌ 不推荐用 MATLAB,建议用 Python、C++、Java 等更通用的语言

              封装一个可复用的分析工具模块 → ✅ OOP 在 MATLAB 还是值得用的

                教学/科研,做一些结构清晰的小项目 → ✅ OOP 可以帮助你理清模块划分

                改Python!


                n5321 | 2025年4月18日 23:53

                AutoEM_thinking

                通用工具还是专用工具?!

                Ansoft本身的臃肿,用户体验差就是因为通用才导致的。不同电机的结构逻辑是不同的,可是他要用一个UI layout来实现。现在在refactoring工作上,要搞通用本质上就没有意义了。

                应该还是make contract app!

                项目做多了以后,整个的思想好像完全不在以前的层面上了!

                看自己3年前的code。原生态,不考虑维护和扩展性,专注于解决一个单一、具体的问题确实还是生猛!

                这个生猛按编程的正常思路来看可以算是不成熟,可是在business domain上面却可以算是criteria!按painting界大佬的台词,

                自己打小、也就是十几岁的时候就可以画很精细的、古典画派的素描,但是长大了以后,一直想的是画得像个小朋友一样,这样子才生猛。

                结合生猛、与成熟,才是境界!


                在architect的角度上重构,存在若干的逻辑细节,居然还是需要一些时间!




                n5321 | 2025年4月17日 23:28

                update

                对tutorial and books 两个app做的更新。

                UI上面用了近似统一的风格,后端添加了若干的字段,和若干个功能。

                关于AutoEM的设计

                ready 用这个filter layout logic!

                update 点:

                1.allperformance table中的sha1做关联表,用id做1对1。




                n5321 | 2025年4月12日 17:57

                前端问题0405

                • 典型的“可收起的侧边栏 + 面板式调试界面”,可以拿来做:

                  • 后台小工具面板

                  • 实时系统监控界面

                  • 开发者模式切换栏

                  • 电机仿真参数面板

                  1. 前端结构搭建(HTML + CSS)

                  1. 添加交互逻辑(JavaScript 控制展开/折叠、面板切换)

                  1. 样式优化(响应式、Hover 效果)

                  1. 可选:用 Django 模板插入动态数据

                  效果说明:

                  • 🔽 点击右侧 “DJ” 小句柄 打开侧边栏;

                  • ✖️ 点击右上角 “✕” 关闭侧边栏;

                  • 📑 点击上方 tab 切换不同的调试内容面板;

                  • 🧩 面板内容是静态模拟数据,你可替换成 Django 模板变量。

                    总体来说是这个效果


                n5321 | 2025年4月5日 22:51

                djanog-ecommerce project learning

                https://github.com/justdjango/django-simple-ecommerce
                souce code 以上!


                n5321 | 2025年4月3日 21:51

                2021.2.15的matlab Code


                %% Import data from spreadsheet   导入数据,设定基准
                [~, ~, raw] = xlsread('D:\experiment\baseline.xls','数据','A2:G244');
                data = reshape([raw{:}],size(raw));
                % Allocate imported array to column variable names
                Amps = data(:,1);
                Volts = data(:,2);
                Speed = data(:,3);
                Torque = data(:,4);
                WattsOUT = data(:,5);
                Efficiency = data(:,6);
                PF = data(:,7);
                %计算电流的实测曲线
                % fa=polyfit(Speed,Amps,3)
                % Ia=polyval(fa,Speed)
                % hold on
                % plot(Speed,Ia)

                %计算扭力的实测曲线
                ft=polyfit(Speed,Torque,4)
                Tn=polyval(ft,Speed)
                figure
                plot(Speed,Torque)
                hold on
                plot(Speed,Tn)
                %%  建立服务器,调用ansoft,进行计算
                iMaxwell=actxserver('AnsoftMaxwell.MaxwellScriptInterface');
                %获取桌面操作
                Desktop=iMaxwell.GetAppDesktop(); % remove set from the object definitions
                %打开程序
                Desktop.RestoreWindow()
                %打开项目
                Desktop.OpenProject('D:/experiment/58C1054.mxwl')
                Project =Desktop.SetActiveProject('58C1054')
                Design = Project.SetActiveDesign('test2');
                %当前项目
                Editor = Design.SetActiveEditor('Machine')
                %打开编辑器
                Module = Design.GetModule('ReportSetup')


                %%   this works
                D =zeros(1,100)   %设定矢量D存储Rmse数据
                for a=1:3:25
                    %fw表达式成功
                    fw=[num2str(a) 'W']
                    %成功
                    invoke(Editor,'ChangeProperty',...
                    {'NAME:ALLTabs',{'NAME:Machine',{'NAME:PropServers',...
                  'Machine'}, {'NAME:ChangedProps', {'NAME:Frictional Loss','Value:=',fw}}}})
                %计算所有项目
                    invoke(Project,'AnalyzeAll')
                %关闭项目
                % Desktop.CloseProject( '58C1054')
                %%数据导出 成功
                    %设定文件导出地址
                    path=['D:/experiment/',num2str(a) ,'.csv']
                    %导出文件
                    Module.ExportUniformPointsToFile( 'Torque', path, ...
                    '0rpm', '1500rpm', '10rpm')
                filename = path;
                delimiter = ',';
                startRow = 2;
                formatSpec = '%f%f%[^\n\r]';
                fileID = fopen(filename,'r');
                dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'HeaderLines' ,startRow-1, 'ReturnOnError', false);
                Caculate_Speed = dataArray{:, 1};
                Caculate_Torque = dataArray{:, 2};
                %计算数据对比baseline
                figure
                plot(Caculate_Speed,Caculate_Torque,Speed,Tn,'x')
                hold on
                Rmse=sqrt(mean(Caculate_Torque-polyval(ft,Caculate_Speed).^2))
                D(a)=Rmse
                end
                %%


                n5321 | 2025年3月30日 20:02

                About Us

                普通电机工程师!
                从前只想做最好的电机设计,现在修理电机设计工具。
                希望可以帮你解释电磁概念,项目救火,定制ANSYS Maxwell。

                了解更多