公开课《程序设计与算法》

课程笔记 北京大学coursera 程序设计与算法 Specialization 专项课程。 练习题Github 库 作业参考GitHub - chiuchiuuu/programming-and-algorithm 课程名 以文件夹定义 C1, 计算导论与C语言基础 C2, C程序设计进阶 C3, C++程序设计 C4, 算法基础 C5, 数据结构基础 C6, 高级数据结构与算法 C7, 程序开发项目实践 文件名 取名规则:例如 2.3.3.cpp 2.C程序设计进阶 (系列课程的第二课) 3.函数递归(该课第三周) 3.编程题#4:扩号匹配问题(该周第四题) 不能保证全部代码都通过coursera或POJ的评价 Debugging case: % c++ 3.9.1.cpp 3.9.1.cpp:83:9: warning: ‘auto’ type specifier is a C++11 extension [-Wc++11-extensions] for(auto p : v) { ^ 3.9.1.cpp:83:16: warning: range-based for loop is a C++11 extension [-Wc++11-extensions] for(auto p : v) { ^ 2 warnings generated. ...

2023-12-1 · 1 分钟 · Atom.X

关于数字游民出海

每年互联网上都出现一些新词,近几年流行趋势是“数字游民”,其实我更愿意叫它“远程工作”。 作为不跟随潮流的人,为了方便用户理解,直击本质,我在此混合使用这两个概念。 我的期望 我乐意参与有积极氛围的海外创业组织和活动中。 我曾经有不少通过分布在全球不同时区的义工(众创)做公益项目的成功经历,例如给环保组织做数据分析和技术支持,给Coursera翻译社区做字幕组和培训等等; 我尚没有成功的海外商业项目的(远程工作)创业经历,过去几年探索出一条(非数字)线下游民的方案,主要是经营海外食品供应链和农庄等实体,包括极端情况下获得难民身份,也算是一种保底方案。 多年前,当我还不属于技术人员时,仅掌握了一些IT常识,达不到极客的高技术标准要求,仅通过各种简单的工具组合来实现web app功能和线上运营,验证这条简单的技术路线是行得通的,也比较适合普通人; 我参与数字游民创业相关活动,基于以下需求: 找事业伙伴,持续学习,弥补我独立创业的短板; 商业部分:寻找MegaEase出海计划的盟友,帮耗子实现愿望; 公益部分:为Coolshell社媒朋友圈群组,寻找可持续的托管和维护者; 工作方式 我可以做以下的贡献 项目初始阶段做义工; 以开源的方式,通过文档驱动的远程协作; 每周大约5小时或更多,根据需要尽可能多调配时间; 毫无保留地提供一切与出海创业相关的经验和资源引荐; 如果有足够高水平的伙伴以义工方式支持Coolshell和MegaEase,那么我也完全有信心全力以赴投入,只要在一件事上足够聚焦和投入,就一定能产生成果,不要一开始就考虑商业收益,也不要急功近利,只要最终项目成功,想要的一切都会有的。 关键问题 我观察到“数字游民”或完全“远程工作”的弊端,必须要做好预先的心理准备。 稳态生活 “数字游民”与10多年前的“背包客”或“沙发客”本质上是同一类人,不过现在信息时代赋能,这些人掌握了互联网远程工作的能力,不再受限于地理位置就可以获得收入。 由于我目前住在欧洲,若没有大的局势变动,未来几年的活动计划也都在围绕地中海展开,所以我的重点是看欧洲的机会。 只有“稳态生活”才能让人有创造力和生产力 “数字游民”可能在一个国家签证期只有3个月,然后必须要去下一个地方,不停地搬家,这种“颠簸流浪”的生存方式,只适合想要通过旅行探索世界的年轻人,早期主要玩家是欧美有gap year 间隔年的学生。 很多国家发放的“数字游民”签证,其实叫“远程工作”签证,“数字游民”是网友们通俗的称呼,政府的本意是吸引全世界年轻人去建设他们国家,希望大家能长期留下来,怎么可能是鼓励不停流浪呢? 不知何故,主流媒体似乎在渲染一种“游民”情结,创造出一种“生存模式”的新词,最早的“数字游民”是欧美年轻人,这种“游民”情结可能出于其”游牧“文化,可能这个时代对大家都对政府很失望,所以想获得自由身份,去任何一个地方,于是创造了这种“数字游民”的新概念。 关键问题在于”土地“是自然资源,网络游戏可以让人神游,我们去任何一个地方都脚踩实地,这是不可避免的,”稳态生活“就是遵守在地法规和交税,长期为当地做贡献。 hybrid(远程+现场)混合办公 传统办公模式的完全定时定点上班,是落后的生产组织方式,其实我也并不提倡完全的远程工作。 经过国际主流大公司验证,最优解、更灵活和有实际成效的是hybrid(远程+现场)混合办公方式。 由于团队成员互相不能见面,其实阻隔了人际关系的加固。而打造一个强有力产品,需要团队凝聚力,面对面的沟通和活动必不可少。 如果公司成员分布在全球各地,必须要有旅行经费提供给他们每年几次定期的聚会,关于这方面的论述,远程工作的前辈例如 37Signals和Automattic已经有很多相关经验可借鉴,具体请查阅其博客文章。 规则/协议 公开透明参与(退出)规则,并不断更新迭代; 最根本的元规则(宪法、协议)制定,请参考 PSMD; 对任何人贡献的资源进行记录,将来项目成功后给予权益兑现; 注释:[管理体系设计和实施 PSMD]的创造者黄勇刚,正在做管理产品的基础设施和智能合约,目前中国能写智能合约的人还不多,如果要做到较高水平的创业合伙人组织,必须在起始点设计的规则(协议)足够先进,我还没有见过比他更聪明的程序员,不服的朋友可以去和他切磋一下,应该可以立见高下。 实现路径 如果在以上组织的规则协议方面没有突破,那么不适宜一开始就做平台(中介),或折腾什么“颠覆创新”工作,“传统保守”的做事方式更安全,也就是先给自己DIY“数字游民”的全流程试试。 中介 大多数的互联网平台服务本质都是中介(middle man 中间人)的角色,要想办法撮合各方用户集中到某个地方交易,有买方、卖方、厂商、产品提供商、服务提供商、技术提供商等等,涉及到复杂的交易规则,做互联网平台(中介)是最复杂的创业。 按照目前市场规律,需求量从大到小排序,如下: 海外找工作、招聘中介; 移民、海外置业和公司注册中介; 海外创业投资机构; 海外创投,属于高级玩家,用户量应该是最小的,即使不出海也是如此。相对而言,我更愿意做公司出海,尽管比个人出海更复杂一些,主要做法是先把公司web app做一个语言本地化,翻译成英法德俄等语言,通过搜索引擎和行业媒体推一波测试,然后再到当地找合伙人,无论传统外贸或新兴互联网行业都是这么干的。 出海业务本质上是一样的,叫“中介”不够新潮,换成“游牧资本”这样的新词就给人感觉耳目一新,刚看到出现一个中文版的“游牧资本”,网站内容基本都是从各国政府网站上复制一堆“数字游民”相关文档即可,没有什么新意可言; DIY - 请先以身试法 如果谁自己还没出海,却喊着要帮助别人做出海的数字游民平台,这伙计一定是要么不知天高地厚地愚蠢,要么就是狡猾使坏搞诈骗。 以身试法才有说服力,请给自己diy出成功案例先,全流程包括:申请“数字游民”签证、确定(海外)远程工作、移居海外、租房/买房、注册公司、租场地(共享办公空间)、参与当地社区活动、发起和组织自己的项目活动。 按照“高可用、异地多活”和“游牧资本”的高标准要求,测试一下我们最多能拿到基本护照?并做到多少个国家自由行? 带着老婆参与全过程,让她感到满足、新鲜和幸福感,这就成功了,如果让家属感觉郁闷、担忧,那就不能算成功,也不适合推荐给其他人,当然这些经验适合做自媒体讲出来,让其他网友避免踩坑。 帮助其他人以同样方式diy一遍,成功了几个案例后,开始有一定的用户量,这时候可能对各方面的问题已经考虑成熟且靠谱的,可以开始做数字游民的网络平台(中介)。 人具备超强的想象力(臆想、自嗨),应该进入现实社会中,迈出第一步试试看,与虚拟的游戏世界完全不同。 我非常建议将人生完全寄托在互联网上的朋友们,一定要更多走入线下现实世界中去体验生活,无论贫寒艰难困苦悲凉,都要勇敢面对,你会获得完全不同的人生体验。 这有利于改变固有的“互联网思维”,任何一种固有的东西都会形成“sterotype刻板印象”,这是动物行为学里的一种专有名词,指代的是遇到困难的时候,继续保持之前的行为和习惯,缺乏灵活有效应变的策略和方法。 如果郭宇在字节的时候,天天通过打游戏和刷肥皂剧减压,而不是到日本泡温泉和旅行,他会保住财富和享受今天的美好生活吗?

2023-9-1 · 1 分钟 · Atom.X

用AI辅助修复旧照片

为了修复老照片,哪一款AI模型最强大? Google、Microsoft、OpenAI等各大厂商的AI都是通用的大模型,虽然其本身并没有一个专门用于修复旧照片的功能,但它具备一些能力,可以结合其他工具和技术,来辅助完成修复旧照片的任务。 以Google Gemini 为例 Gemini 可以辅助的部分: 图像描述和分析: Gemini 可以对旧照片进行图像描述,识别照片中的问题,例如: “这张照片拍摄于 1950 年代,图像泛黄,有明显的划痕和污渍,人物面部细节模糊。” “照片曝光过度,细节丢失严重,需要调整对比度和亮度。” “照片背景模糊,主体人物清晰,但边缘有噪点。” 这些描述可以帮助你更好地了解照片的问题,并制定修复策略。 文本提示生成: Gemini 可以根据照片的描述,生成更有效的文本提示词,用于图像修复工具(如 Stable Diffusion、Midjourney 等)。 例如: 照片描述: “一张黑白旧照片,人物面部模糊,有轻微划痕。” Gemini 生成提示词: “修复黑白照片,清晰人脸,去除轻微划痕,增强细节,高分辨率。” 更好的提示词可以提高图像修复工具的修复质量。 Stability.ai Github repo: Stability.ai 信息检索: Gemini 可以用来搜索和学习图像修复相关的技术和教程,例如: 搜索 “使用 Photoshop 修复旧照片教程” 搜索 “AI 图像修复工具测评” 搜索 “老照片修复算法” 创意灵感: Gemini 可以提供一些修复的创意灵感,例如: 如果照片缺失部分,Gemini 可以根据照片内容提供可能的场景补充建议。 如果照片颜色褪色,Gemini 可以提供颜色还原的参考方案。 需要配合使用的工具和技术: 图像处理软件 (Photoshop, GIMP): 手动修复照片的工具,可以进行色彩校正、修复划痕、去除污渍等。 AI 图像修复工具 (GFPGAN, Real-ESRGAN, Remini): 利用人工智能技术自动修复照片,可以增强图像分辨率、锐化边缘、还原人脸细节等。 图像增强算法: 例如双三次插值、 Lanczos 插值等,可以提升图像分辨率。 颜色还原技术: 例如使用参考图像或自动色彩校正算法,还原照片的色彩。 总结: Gemini 并非一个“开箱即用”的老照片修复工具,但它可以作为你的助手,帮助你更好地分析照片、生成有效的提示词、学习修复技术、并提供创意灵感。 通过将 Gemini 与其他图像处理工具和技术结合使用,你可以更有效地修复旧照片,恢复它们昔日的风采。 ...

2023-2-25 · 1 分钟 · Atom.X

配置 gcloud 环境变量

本文件描述了几种配置python程序所需gcloud 环境变量的方法。 方案 2:在 Shell 启动文件中配置(推荐用于本地开发) 这种方法可以持久地为你的用户设置环境变量。每次打开新的终端时,这些变量都会被设置。 添加 export 命令: 在文件末尾,通常在其他 export 命令之后,添加你的环境变量配置: Bash (.bashrc 或 .bash_profile): export GOOGLE_CLOUD_PROJECT="your-project-id" export GOOGLE_CLOUD_REGION="your-region" # 例如:europe-west3 export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/credentials.json" 编辑文件后,重新启动终端或使用 source 命令使更改生效: source ~/.bashrc # 或 .bash_profile 或 .zshrc 若项目运行于python .venv虚拟环境中,没有全局配置gcloud环境变量的需求,那么配置在虚拟环境中,通常在 venv/bin/activate。 请编辑激活activate脚本,增加以上bash中相同的export脚本。 方案 3:使用 gcloud 的 application-default 登录(便于使用默认的 gcloud 配置) 如果你已经使用 gcloud auth application-default login 配置了 gcloud ,其中包含你的项目和凭据,则你的脚本可以自动获取这些凭据。这很方便,尤其当你已经大量使用 gcloud CLI 时,因为它避免了显式设置环境变量。 然而,它不如方案 2 明确,并且需要确保你的默认项目设置正确。 gcloud config set project your-project-id gcloud auth application-default login 然后,在你的 Python 代码中,使用 google.auth.default() 获取凭据: ...

2023-2-16 · 1 分钟 · Atom.X

远程工作、异地多活

人为什么要终身老死在一个地方? 绿卡? 接到几个老友来信,问“你的绿卡办理得怎么样了?”。 我不打算拿绿卡一直住在固定某个地方,天下没有免费的福利,高福利国家的一半收入要交各种税, 赚的钱不能完全自己支配,只要钱给到位,对于物质生活而言,到任何地方都一样。 同样的生存之道适用于任何地方,若感到某个地方的生存环境不适应,不认同官方政策或民风习俗的做法,那么就不乐意多缴税,也不想长久待下去。例如政府可能用税收养一堆躺吃福利的懒汉,给某些难民的优待权利都高于一般的普通人。 我现在还在学习,也有很多关于未来发展的问题没搞清楚,没有时间考虑去赚很多钱,有生存的基本保障就够了。有大笔收入必须合法避税,这是富豪阶层主要考虑的问题。 现在漂泊着算临时居留,未来的收入大部分来自于网络,不依赖工作地点,无所谓在哪里,去善待自己的地方落户,找个更好的地方修养生息。 我还有很多理想有待实现,至于国籍是不重要的,如果找不到认同的地方,stateless无国籍生存也是一个选项。 然后我又想起下面这句关于如何看待政府的名言。 政府都是帮倒忙的 因为政府总是搞官僚主义瞎折腾,让我缴税支持你,至少你得善待我吧,实际它经常让我们陷入很多麻烦。 The nine most terrifying words in the English language are, ‘I’m from the government and I’m here to help.’ — Ronald Reagan, 40th president of US (1911 - 2004) 英语中最糟糕的九个词是“我是政府,我来帮忙的。” — 罗纳德里根,美国第 40 任总统 (1911 - 2004) 我比较严谨,不想转发别人篡改的内容,找到了这句话的源头,还真找到原话来自里根基金会。 更好的身份解决方案,称为“异地多活”。 异地多活 借用云计算术语,来说明或比喻一种更灵活的生存状态: 高可用,異地多活:工作和收入不受时间和地理位置的限定,可以自由在多地活动 术语释义:高可用 Highly available,異地多活 Multi-Site High Availability. 一个地方因风险失守,可以立即切换到另一个安全地区,就像服务器掉线可以立即切换,保障web app 99.99%的高可用。 推荐两个“异地多活”方案。 游牧资本家 我很认同他们的 slogan口号 “ GO WHERE YOU’RE TREATED BEST” 去善待你的地方! ...

2023-2-11 · 1 分钟 · Atom.X