Reacquainting with an old friend named Cygwin
Wiping out my Fedora Core 5 partition off my laptop as soon as I get home tonight.
Set up Cygwin at work today, played around with some rc files, and after little tuning, I have the perfect setup I need to write the random script and the one-off program--without having to dual boot or manage a full blown Linux installation.
With Cygwin I'm able to run gawk, sed, ruby, write the random bash script, mess with vim, and not have to worry about why my video isn't loading subtitles, why the video scaling isn't working, why audio sometimes works and sometimes doesn't, seemly by random, and countless of other small but annoying problems that I don't want to deal with.
There's times when you want to do hardcore system level hacking in Linux. There's other times when you just want a small environment to hack out some trivial code.
The trouble with setting up FC5 is that it isn't any one of those. I spent two days following installation guides, copying down commands to make the OS a better place for work and play, only to stomp my foot in frustration at how pointless it all was.
It all comes down to the conclusion I've come to again and again. There's no "learning" when it comes to setting up a Linux system. It's just following a bunch of instructions and hoping the things come out right. If not, well, GOOGLE TIME, and cross your fingers, hope someone encountered the same problem and that people have been nice enough to not answer in mockery, and perhaps have an actual useful answer. And if no one knows anything, well, chances are it's some quirk that you find annoying and no one else does, so you learn to live with it.
Cygwin setup notes:
----- extra packages --------
cvs, gcchelper, make, wget, inetutils, openssh, ruby, unzip, patch, rxvt, vim
------ cygwin.bat -----------
@echo off
C:
chdir C:\cygwin\bin
set SHELL=/bin/bash
rxvt --loginShell
------ .Xdefaults -----------
rxvt*font: Lucida Console-13
rxvt*geometry: 80x50
------- .vimrc ---------------
/usr/share/vim/vim64/vimrc_example.vim -> .vimrc
>> fixes arrow key, backspace key garbage in insert mode
set backupdir=/tmp,~/,.
>> dump all backup files (.X~) into /tmp
--------- .bashrc -----------
shopt -s cdspell
export HISTIGNORE
export HISTCONTROL...
enable all aliases (less -r in particular for non-english characters)
add --show-control-chars to ls alias for non-english characters
---------- .bash_profile -----
path ~/bin
----------- .inputrc --------
# allow 8-bit input/output
$if Bash
set bell-style none
set mark-directories on
set mark-symlinked-directories on
set match-hidden-files on
$endif
-----------------------------
VISUAL - EDITOR environment variables -- don't need these
http://www.faqs.org/docs/artu/ch10s04.html
-----------------------------
wheat
... ls colors suck.
rxvt/Xdefault - vim - ls
rxvt*background: midnight blue
rxvt*foreground: white
rxvt*cursorColor: red
http://user.it.uu.se/~hamo0815/win32unix/
http://ask.metafilter.com/mefi/22545
-----------------------------
quit vim and restore previous screen
TERM=cygwin
>> this messes up Home/End/... under vi/INS!
fix: TERM=rxvt
>> vi/INS ok, vi restore ok.
>> rxvt*termName=rxvt
>> side effects?
分享到:
相关推荐
内容概要:本文详细介绍了在C# Winform环境中实现Socket TCP通信的一种高效方式,即通过封装的服务端和客户端控件来简化开发流程。文中不仅讲解了控件的基本使用方法,如服务端监听、客户端连接、数据传输等核心功能,还探讨了控件内部的工作原理,包括异步通信、事件驱动机制以及线程安全管理等方面。此外,文章还提供了一些典型应用场景的具体实现,如聊天程序、文件传输等,帮助开发者更快地上手并解决实际问题。 适合人群:具有一定C#编程基础,希望快速掌握Socket TCP通信开发的程序员。 使用场景及目标:适用于需要在网络编程中快速搭建稳定可靠的通信系统的项目,旨在提升开发效率,降低开发难度,使开发者能够专注于业务逻辑而非底层通信细节。 其他说明:控件源码公开,便于进一步学习和定制化开发;附带多个应用案例源码,涵盖常见网络通信任务,有助于理解和实践。
内容概要:本文详细解析了欧姆龙CJ2M PLC控制系统的架构及其对12个伺服电机和气缸的控制方法。主要内容涵盖主控程序、手动模式、复位逻辑、定位控制、通讯与HMI交互以及生产计数模块。文中介绍了状态切换逻辑、伺服使能与时序处理、绝对与相对定位、EtherNet/IP通讯协议的应用、以及各种实用的调试技巧和常见问题解决方案。此外,强调了模块化设计思想和异常处理机制的重要性。 适合人群:从事自动化控制领域的工程师和技术人员,尤其是对PLC编程有一定基础并希望深入了解欧姆龙CJ2M系列产品的读者。 使用场景及目标:帮助读者掌握复杂的多轴伺服控制系统的设计思路与实现方法,提高实际项目的开发效率和稳定性。适用于工业生产线、机器人集成等应用场景。 其他说明:文章提供了丰富的实战经验和代码片段,有助于读者更好地理解和应用相关技术和理念。
内容概要:本文介绍了基于QT框架开发的步进电机上位机控制程序,该程序支持串口、TCP、UDP三种通信方式,适用于不同操作系统(Windows、Linux、macOS)。文章详细讲解了各个通信方式的具体实现方法,包括代码示例和相关技术要点。此外,还讨论了跨平台适配、异常处理、线程安全等问题,并提供了实用的开发经验和优化建议。通过这种方式,开发者可以根据实际需求灵活选择最适合的通信方式,提高步进电机控制的精度和效率。 适合人群:具有一定编程基础,尤其是熟悉C++和QT框架的研发人员,以及从事自动化控制系统开发的技术人员。 使用场景及目标:①适用于各种自动化控制项目,如工业生产线、实验室设备等;②帮助开发者掌握跨平台开发技能,提升程序的兼容性和灵活性;③提供详细的代码实现和技术指导,便于快速搭建稳定的步进电机控制系统。 其他说明:文中不仅涵盖了基本的通信实现,还包括一些高级功能,如运动轨迹预测、电机参数自动识别等。同时强调了程序的稳定性和安全性,建议加入异常处理机制和紧急停止功能。
少儿编程scratch项目源代码文件案例素材-回拨电话.zip
少儿编程scratch项目源代码文件案例素材-回声石.zip
内容概要:本文详细介绍了将暗通道先验算法应用于FPGA平台进行图像去雾处理的技术实现过程。首先,作者在Matlab中展示了暗通道先验算法的基本原理和实现方法,包括计算暗通道、获取大气光值以及估算透射率等步骤。随后,重点讨论了如何在Quartus 13.0环境下利用Verilog语言将这些算法转换为硬件电路的具体实现方式,如构建最小值计算模块、大气光估计模块和透射率优化模块。此外,文中还探讨了在浓雾区域和天空区域处理中存在的问题及解决方案,指出了现有实现的局限性和未来的改进方向。 适合人群:从事图像处理、FPGA开发的研究人员和技术爱好者,尤其是对图像去雾算法感兴趣的开发者。 使用场景及目标:适用于希望深入了解暗通道先验算法在FPGA平台上实现的读者,旨在帮助他们掌握相关技术和解决实际应用中的难点。 其他说明:文章不仅提供了详细的理论解释和技术实现细节,还分享了许多实践经验,有助于读者更好地理解和应对可能出现的各种挑战。
内容概要:本文详细介绍了RK3568和RK356X系列处理器的开发资料,包括硬件原理图、PCB设计以及SDK开发。硬件部分提供了两种版本的PCB设计文件(Allegro和PADS),并附有详细的GPIO控制示例代码。软件部分则涵盖了Buildroot和Yocto双环境支持,以及多媒体开发示例,如视频播放功能。此外,还提供了丰富的库文件和开发示例,帮助开发者快速上手。文中还提到了一些常见的调试技巧和注意事项,如DDR初始化、电源配置等。 适合人群:嵌入式系统开发工程师、硬件设计师、软件开发者,尤其是那些希望深入理解和应用RK3568/356X平台的人群。 使用场景及目标:①硬件设计:通过原理图和PCB设计文件,帮助工程师快速构建硬件原型;②软件开发:借助SDK和示例代码,加速应用程序的开发和测试;③调试与优化:提供常见问题的解决方案和调试技巧,提高系统的稳定性和性能。 其他说明:资料总量达34GB,内容详尽全面,适用于从初学者到资深工程师的不同层次用户。建议新手先从外设驱动入手,逐步深入硬件设计和高级功能开发。
内容概要:本文详细介绍了基于MATLAB/Simulink平台搭建Vienna整流器的电压电流双闭环控制系统以及空间矢量脉宽调制(SVPWM)的具体实现方法。首先探讨了电压外环采用带有前馈补偿的PI控制器来稳定直流侧电压,解决了传统PI控制器无法抑制电压波动的问题。接着深入分析了电流内环的设计,通过对比不同坐标系下的控制方式,选择了静止坐标系下的PR控制器以降低总谐波失真率(THD),并加入了谐振项提高基频响应能力。对于SVPWM调制部分,则着重讲解了扇区判断、作用时间和矢量选择等关键技术细节,确保调制波形的质量。此外,文中还分享了许多实用的小技巧,如参数设置、死区补偿及时序安排等方面的经验。 适合人群:从事电力电子研究的技术人员、高校相关专业师生及对Vienna整流器感兴趣的工程爱好者。 使用场景及目标:适用于希望深入了解Vienna整流器内部工作机制的研究者,在进行实验设计或者产品开发过程中可以作为参考资料;同时也为初学者提供了一个完整的项目案例,帮助他们掌握从理论到实践的操作流程。 其他说明:文中提供了大量MATLAB/Simulink代码片段供读者参考学习,强调了实际调试过程中的注意事项,有助于提升读者解决复杂工程问题的能力。
少儿编程scratch项目源代码文件案例素材-光环:致远星火燎原.zip
内容概要:本文详细介绍了如何利用Matlab实现卷积神经网络(CNN)与长短期记忆网络(LSTM)相结合的时间序列分类预测。首先,文章讲解了数据预处理步骤,包括数据生成、标准化以及划分训练集和测试集的方法。然后,重点阐述了CNN-LSTM模型的构建过程,具体涉及卷积层、池化层、LSTM层等关键组件的设计及其参数选择。此外,还讨论了训练选项的设置,如优化器的选择、学习率调度机制等,并提供了训练和评估模型的具体代码示例。最后,针对可能出现的问题提出了多种优化建议,例如调整卷积核大小、增加Dropout层、采用双向LSTM等方法。 适合人群:对时间序列数据分析感兴趣的科研人员、工程师以及希望深入理解深度学习应用于时间序列领域的学生。 使用场景及目标:适用于需要处理带有时空特性的时间序列数据的任务,如金融交易预测、医疗健康监测、工业设备故障诊断等领域。通过构建并优化CNN-LSTM模型,能够提高时间序列分类预测的准确性。 其他说明:文中提供的代码片段可以直接运行于Matlab R2019a及以上版本环境,同时附带了一些实用的小贴士帮助读者更好地理解和应用相关技术。
内容概要:本文介绍了一个使用LabVIEW开发的压力位移监控系统的实现细节。该系统主要用于监控压装过程中压力和位移的变化,通过采集卡或PLC获取数据并在XY图上实时绘制曲线。用户可以通过鼠标在XY图上拖动区域来设定合格范围,系统会自动判断曲线是否超出该区域,并在超出时发出警告。此外,系统还支持数据保存和历史数据回放功能,便于后续分析和调试。文中详细描述了数据采集、鼠标事件处理、曲线判断以及数据存储的具体实现步骤和技术要点。 适合人群:对LabVIEW有一定了解,从事工业自动化、数据采集和监控系统开发的技术人员。 使用场景及目标:适用于需要监控压装过程或其他类似工艺的工厂和实验室,帮助技术人员快速判断产品质量,提高生产效率和质量控制水平。 其他说明:文中提供了详细的代码片段和实现技巧,如坐标转换、事件处理、数据存储等,有助于读者更好地理解和应用LabVIEW进行相关项目的开发。
内容概要:本文介绍了利用LabVIEW进行非标自动化设备开发的一种创新方法——表格驱动开发。这种方法将传统的代码编写转变为通过Excel表格配置参数,从而大幅提高了开发效率和灵活性。文章详细描述了如何通过表格定义硬件配置、逻辑流程、状态机迁移以及变量管理等功能,并展示了具体的代码实现和应用案例。此外,还讨论了该方法的实际效果及其对开发流程的影响。 适合人群:从事非标自动化设备开发的工程师和技术人员,尤其是那些希望提高开发效率、减少重复劳动的人群。 使用场景及目标:适用于需要频繁调整硬件配置和逻辑流程的非标自动化项目。主要目标是通过简化开发流程,缩短开发周期,降低维护成本,使工程师能够专注于更高层次的设计和优化工作。 其他说明:该方法不仅提升了开发效率,还使得硬件兼容性和逻辑迭代变得更加容易。通过将复杂的技术细节封装在表格配置中,即使是新手也能快速上手,而经验丰富的工程师则可以集中精力于系统的性能优化和异常处理。
二维码批量识别工具,借助先进图像识别技术,能快速准确读取大量二维码信息。适用于物流与供应链管理,如库存盘点和货物追踪;可用于资产管理,像固定资产盘点与设备巡检;还能助力数据收集与市场调研,比如问卷调查与活动签到。它能将识别信息导出为 Excel 等常见表格,表格结构清晰,方便用户对海量二维码数据高效采集、整理与分析,大幅提升工作效率
内容概要:本文详细介绍了MADYMO软件在汽车安全仿真领域的应用,涵盖气囊折叠模拟、安全带建模、碰撞仿真等方面。MADYMO将多体动力学与显式有限元计算相结合,提供了高效且精准的解决方案。文中展示了如何利用XML定义气囊折叠路径、Fortran代码实现安全带接触力计算、Python脚本进行参数优化以及混合建模策略的应用。此外,还讨论了MADYMO在处理复杂接触问题、优化仿真效率方面的独特优势。 适合人群:从事汽车安全工程、碰撞仿真研究的专业人士和技术爱好者。 使用场景及目标:适用于需要进行汽车安全性能评估、碰撞测试优化、安全设备设计验证等场景。主要目标是提高仿真精度、缩短开发周期、降低实验成本。 其他说明:MADYMO以其强大的多体动力学和显式有限元耦合能力,在汽车安全仿真领域占据重要地位。通过合理的参数设置和混合建模策略,能够显著提升仿真的可靠性和效率。
本代码用于将zTC1插线板通过自建的mqtt服务器接入homeassistant智慧家居系统。 前提是自己建了mqtt服务器。 安装homeassistant容器之后,在linux操作系统下的/opt/docker/homeassistant/config目录下可以找到configuration.yaml文件,用文本编辑器打开,将本资源的代码加进去。 注意,如果以前曾经添加过mqtt的sensor和switch实体,那么本代码中的sensor或switch就不需要了,将sensor下面的内容合并到以前的sensor下面代码后面,将switch下面的代码合并到以前的switch代码后面。
本研究利用Sen+MK方法分析了特定区域内的ET(蒸散发)趋势,重点评估了使用遥感数据的ET空间变化。该方法结合了Sen斜率估算器和Mann-Kendall(MK)检验,为评估长期趋势提供了稳健的框架,同时考虑了时间变化和统计显著性。 主要过程与结果: 1.ET趋势可视化:研究利用ET数据,通过ET-MK和ET趋势图展示了蒸散发在不同区域的空间和时间变化。这些图通过颜色渐变表示不同的ET水平及其趋势。 2.Mann-Kendall检验:应用MK检验来评估ET趋势的统计显著性。检验结果以二元分类图呈现,标明ET变化的显著性,帮助识别出有显著变化的区域。 3.重分类结果:通过重分类处理,将区域根据ET变化的显著性进行分类,从而聚焦于具有显著变化的区域。这一过程确保分析集中在具有实际意义的发现上。 4.最终输出:最终结果以栅格图和png图的形式呈现,支持各种应用,包括政策规划、水资源管理和土地利用变化分析,这些都是基于详细的时空分析。 ------------------------------------------------------------------- 文件夹构造: data文件夹:原始数据,支持分析的基础数据(MOD16A2H ET数据 宁夏部分)。 results文件夹:分析结果与可视化,展示研究成果。 Sen+MK_optimized.py:主分析脚本,适合批量数据处理和自动化分析。 Sen+MK.ipynb:Jupyter Notebook,复现可视化地图。
内容概要:本文详细介绍了如何使用Matlab实现基于门控循环单元(GRU)网络进行时间序列预测的方法。首先,通过生成带噪声的正弦波数据并进行预处理,将其划分为训练集和测试集。接着,构建了一个包含GRU层的神经网络,并设置了合理的训练参数。训练过程中采用了Adam优化器,并通过调整学习率和批处理大小等参数确保模型的有效收敛。预测阶段使用了滚动预测方法,确保预测结果的准确性。最后,通过可视化展示了预测结果,并讨论了一些常见的陷阱和改进措施。 适合人群:具有一定编程基础和技术背景的研究人员、工程师以及对时间序列预测感兴趣的开发者。 使用场景及目标:适用于需要对未来数据进行预测的各种应用场景,如电力负荷预测、股市走势分析等。主要目标是帮助读者掌握GRU在网络实现中的具体应用,提高时间序列预测的能力。 其他说明:文中提供了详细的代码示例和实践经验分享,有助于读者更好地理解和应用GRU网络进行时间序列预测。同时,还提到一些优化技巧,如数据归一化、调整隐藏单元数等,进一步提升了模型性能。
内容概要:本文详细介绍了如何利用MATLAB实现四旋翼无人机的姿态控制,特别是PID控制算法的应用。首先解释了四旋翼飞控的基本原理,即通过调节四个电机的转速来维持无人机的平衡。然后展示了PID控制器的具体实现代码,强调了增量式PID的特点以及各参数(比例、积分、微分)的作用。文中还讨论了常见的调试技巧,如逐步调整参数、处理积分饱和、使用低通滤波器减少噪声干扰等。此外,作者分享了一些实用的经验,例如根据电池电压动态调整积分参数、通过观察无人机异常行为反向推测参数设置是否合理等。最后,文章提到了仿真工具Simulink的使用,演示了如何通过图形界面进行参数实时调整,使整个调参过程更加直观高效。 适合人群:对无人机控制系统感兴趣的工程师和技术爱好者,尤其是有一定MATLAB基础并希望深入了解PID控制机制的人群。 使用场景及目标:适用于希望掌握四旋翼无人机姿态控制原理及其PID参数调优方法的学习者。目标是在理解理论的基础上,能够独立完成简单的四旋翼无人机姿态控制系统的建模、仿真和参数优化。 其他说明:文章不仅提供了详细的数学公式和代码片段,还穿插了许多实践经验,使得读者不仅能学到理论知识,还能获得宝贵的实操指导。
内容概要:本文详细介绍了针对NXP的S32K144和S32K148芯片的Boot、网络、UDS及标定程序的定制开发。具体涵盖Boot程序作为系统启动的基础,包括硬件初始化和Flash配置;网络功能方面,重点讨论了CAN网络的初始化及其配置;UDS服务作为诊断通信的核心,展示了如何通过UDS协议进行故障码读取;标定程序则允许动态调整系统参数,提高灵活性。此外,还提供了UDS烧写上位机的开发方法,确保程序高效可靠地烧写更新。每个部分均附有代码示例和详细的代码分析,帮助开发者更好地理解和实施。 适合人群:从事汽车电子和嵌入式系统开发的技术人员,尤其是那些正在使用或计划使用S32K144和S32K148芯片的工程师。 使用场景及目标:适用于需要深入了解和掌握S32K144/148芯片特性的开发团队,旨在提供从底层硬件初始化到上层应用功能实现的全面指导,帮助开发者快速构建稳定高效的嵌入式系统。 其他说明:文中不仅提供了理论知识和技术要点,还分享了许多实际项目中的经验和技巧,如中断向量表重定位、FlexCAN配置、UDS服务实现、标定程序优化等,有助于解决实际开发过程中遇到的问题。
少儿编程scratch项目源代码文件案例素材-伽玛引擎(Alpha Legacy).zip