Sam Wu

Sam Wu

GuangZhou
开发者如何『简单』折腾出来一个ITIN
ITIN Featured

开发者如何『简单』折腾出来一个ITIN

说是简单,其实也不简单。这篇文章更多是一些知识的普及,还有部分关键步骤的操作流程。 为什么要有一个ITIN ITIN (Individual Taxpayer Identification Number) 是个人纳税人识别号码。它是一个由美国国税局 (IRS) 签发的九位数的税务处理号码,格式为 XXX-XX-XXXX,和SSN长得差不多,但是9或者7开头。 💡简单理解,ITIN是给没有SSN的外国人用来在美国报税的。 大家到这个时候就会说了,我又不在美国报税,为什么要搞个ITIN? 那是因为,太多的非法移民和各种没资格在美国合法逗留的人,有一些身份识别相关的场景。所以,ITIN作为一个唯一的标识符,在一些场合,可以被当作类似于『身份证』的功能,用于识别某一个具体的个人。比如银行开户,申请信用卡,申请EIN,等等等等。 前面也提到,在美国要报税,就需要ITIN。所以,你如果在美国有LLC公司,那么,你也需要有一个ITIN来为这家LLC进行报税。即使这家LLC有EIN。 为什么?因为LLC的税务是穿透到个人的。 然后,申请了ITIN,你就可以开始在美国建立你个人的信用
11 min read
Airwallex

避坑Airwallex空中云汇

☠️管理混乱,隐藏收费。像这种公司,能躲就躲 1、香港公司,开通了Airwallex空中云汇的账号 2、在线申请了Airwallex空中云汇的VISA实体卡 3、4张实体卡,每张实体卡扣了我$25美金 4、空中云汇的官网明确说明实体卡免费 5、问客服,客服的答复:$25美金的确没有公开写明,实体卡是有收费的。 6、实体卡创建过程中,也没看到任何显示收费的地方 7、查看他们大陆的网站,看不到任何提到收费的信息 可笑的是,他们网站主打费用公开透明,没隐形费用。
2 min read
出海

独立出海开发者国外银行选择之Found.com

👨‍💻拔草提示:要SSN或者ITIN。 最近和很多搞出海的独立开发者聊天,困扰大家最多的除了如何注册海外公司(比如美国)以外,就是怎么开一个用于收款的银行账户了。 首先要说明的是,Wise、Airwallex(空中云汇)等服务商,都只是一个『收款渠道』而已,并不是银行机构。虽然他们提供了各种货币的收款账号,但这些账号都是基于他们的一个母账号开出来的子账号。也就是说,这类账号的风险极高,一旦母账号中任意的子账号出了问题,就会波及到其他子账号。最近Wise美国一直要求提供经营的地址证明就是一个例子。 所以,Wise之类的账号,临时用用就算了,资金千万别过夜。 比较受欢迎的美国银行账号应该是Mercury(水星银行)了。其次还有Relayfi、Brex。按照开户难度,Brex是最难的,但也是相对比较稳定可靠。不推荐的是Relayfi,我3个没有交易的账号被莫名其妙连坐封了,说是把钱给我退支票,但到现在半年多,连影子都没见着。Mercury是大家最喜欢的,但现在也被玩坏了,开户难度越收越紧,最近的情况是大家很难再开出Mercury的账号了。 今天闲来无事,发现了一家可以秒开账号的
6 min read
税务

如何注册EU OSS VAT税号

为什么要欧盟的OSS VAT税号 大家都知道,欧洲福利高,待遇好。但是,高福利是基于高税收的基础上。特别是欧盟国家有增值税(VAT),分别在15%-27%之间。 大家可能会说,OK,那我知道了。但这个跟我有什么关系?我的公司又不成立在欧盟,收税跟我没什么关系吧? 那,这就错了。事实上,除非你的商品/软件不卖给欧盟国家的人,不然,VAT还是跟你息息相关的。 为什么?因为欧盟税收是根据目的地原则,也就是说,VAT在消费地征收。一个法国用户购买了你的软件,那么消费地就是法国,所以,你作为软件的销售方,需要在法国缴纳VAT。软件产品适用于标准税率,法国的VAT标准税率是20%。 也就是说,你一个定价$99的软件产品,卖给了法国客户,你需要为法国政府上交$99*20%=$19.8的VAT。你实际到手,只有$79.2。 所以,
4 min read
EIN

在线申请EIN,只要3分钟

我前一段时间曾经写过一篇文章《如何自己动手免费申请EIN》,但文章是针对没有美国ITIN号的同学。对于有ITIN的同学,申请步骤其实简单得多。最近我刚申请到了美国的ITIN号,所以尝试一下在线申请EIN。前后过程只需要3分钟,填写一些企业的基本资料,勾选几个选项。 💡下面的步骤,只合适有ITIN的同学。没有ITIN请看我另外一篇文章 * 打开雇主身份识别号码 (EIN) 在线申请,点击『立即在线申请』 就这么多,剩下就是拿着EIN号去申请水星银行了。使用我的邀请链接https://rr.do/mercury可以获得$250刀
2 min read
SwiftUI

Swift读取RSA Key报错RSA private key creation from data failed

macOS Swift程序因为需要,使用了RSA非对称加密。读取公钥的时候一切正常,但读取私钥的时候会报错 Error Domain=NSOSStatusErrorDomain Code=-50 "RSA private key creation from data failed" (paramErr: error in user parameter list) UserInfo={numberOfErrorsDeep=0, NSDescription=RSA private key creation from data failed} 相关代码片段如下 func loadPrivateKey(from string: String) -> SecKey? { guard let data = Data(base64Encoded:
1 min read
cdn

出海业务如何免费做到全球加速

最近在做ServBay这个macOS下最好的Web开发工具,经常收到赞叹:网站不备案,在国内没有节点,但为什么访问速度飞快,下载速度也有40M+?到底在基础设施上,你花了多少钱? 我经常笑而不语,回答了一句:这都不花钱,也都不是事。 创业者搞初创项目,能白嫖为啥要付费?这也太不尊重Cloudflare和AWS了。 今天我就来讲讲,这是如何做到的。 1、首先,你要有DNSPod 对!做新项目,也不要忘记为过去的项目打广告。DNSPod的IP库是和ipip强强联手联合打造的,分区域的准确性要说第二,谁也不敢认第一。 想加速,首先要做的就是能把用户的来路区分开。国内用户走专门节点,国外用户走另外的节点。 所以我们首先要把网站的域名转到DNSPod。 这里就用servbay.dev来举例。 2、然后,你要有Cloudflare Cloudflare的线路和节点是没得说的,全世界的访问速度基本都能维持在前一。而且还免费(够用了)。 但是,这货在中国不行。虽然他们的客户经理天天来撩我,但说实话,除了移动的网络访问速度很快以外,电信和联通的访问速度都很感人。并且吧,时不时抽
7 min read
telegram

如何安全的转移telegram用户名到另外一个账号

花了30 usdt买的教训,总结下: 🚫telegram中,A账号修改用户名后,B账号并不能马上使用A账号释放出来的用户名,用户名释放的时间是随机的,极有可能会被抢注。这是一门生意 我就是因为这样,用户名被抢注了。最后花了$30赎了回来。 想要安全转移用户名,解决方案如下: 如何安全的把telegram的用户名从A用户转到B用户 * A用户先创建一个频道(channel) * 把A用户的用户名改掉,比如bra改为bra123 * 马上把刚才创建的频道,改为公开(public),然后在link中,输入刚才释放出来的用户名bra * B用户加入刚才新创建的频道 * A用户把频道的所有者(ownership)改为B用户 * B用户把频道从公开(public)改为私有(private)。这时候用户名会被释放 * B用户马上修改自己的用户名为刚才释放出来的用户名bra * OK,完成用户名转换 💡一个小时只能修改2次用户名,多了会触发telegram限频,导致丢用户名💡整个过程15分钟内完成,否则也会导致用户名被释放
1 min read
EIN

如何自己动手免费申请EIN

最近中国的程序员们纷纷出海,很多人也注册了自己的美国LLC公司。但注册完美国公司以后,面临的最大一个问题就是获取EIN(Employer Identification Number)。美国每个企业都需要有属于自己的EIN,不然寸步难行。往近了说,无法开通银行账号(比如水星银行Mercury、Relay、stripe、wise)。往远了说,每年无法报税,会被IRS重罚。所以,申请EIN就成了美国公司新注册后必须进行的第一步操作。 简单来概括,EIN就相当于企业的身份证,或者类似于中国企业的『统一社会信用代码』。但区别在于,中国的企业注册完成后自动获得编号,但美国需要自己申请。 所以,EIN这个东西是完全免费的。不管是申请,还是持有。 但是吧,因为申请EIN的流程有点啰嗦,并且在线申请的话,需要填写个人的SSN。如果通过电话申请,则需要英语很好,而且还要能听懂阿三口音才行。这就难倒了一大票人了。从而滋生出代理申请EIN这么一码事,价格也从几十美刀到几百美刀,甚至某些无良公司敢收小一万块钱RMB的。 今天,不用999,也不用99,9块9都不需要,我们来免费申请EIN。 英语不好?不
4 min read
SwiftUI

@StateObject和@ObservedObject的区别

@ObservedObject创建的对象,会在View重绘的时候重新创建。@StateObject创建的对象不会,只会创建一次,所以在视图重建的时候不会受到影响。 比如 @ObservedObject var downloader = Downloader() // ... @StateObject var downloader = Downloader() VStack { ProgressView(value: downloader.progress.fractionCompleted) .progressViewStyle(LinearProgressViewStyle()) Text("\(Int(downloader.progress.fractionCompleted * 100))%") Button(action: { downloader.cancelDownload() isDownloading = false }) { Text("Cancel") }
1 min read
CPU

MoreFine S500+ AMD ES CPU的诡异问题

在淘宝上买了几台便宜的MoreFine S500+用来在家里跑虚拟化,CPU是AMD Ryzen 9 5900HX ES(100-000000300-30_Y),其中有两台机器很诡异,PVE只要一跑apt upgrade,必定死机重启,屡试不爽。其他时候一点问题都没有。整个过程没有任何log,没有任何core dump,实在是诡异。一开始以为是内存的问题,换过内存后还是一样,重置BIOS也不能解决问题。 偶然的机会,发现dmesg有error,系统不能开启TSC,并且每次重启,报错的CPU核心都不一样 root@pve-2:~# dmesg | grep -i -e tsc -e clocksource [ 0.000000] tsc: Fast TSC calibration using PIT [ 0.000000] tsc: Detected 2894.
3 min read
SDR

Raspbian 64位下安装SDRplay RSP1驱动

Raspbian 64bit其实并不是纯的64位,虽然是aarch64,但还是有很多动态库、可执行文件都是32位的,甚至编译出来的文件默认都是32位 比如 $ file /usr/local/bin/SoapySDRUtil /usr/local/bin/SoapySDRUtil: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]=c5236a15f0708fb3213f4ceda6f8bcf2bec88659, for GNU/Linux 3.2.0, not stripped SDRplay的官方提供了64位的API库,但默认安装后会有问题,虽然文件存在,但会提示文件不存在 pi@pi:~ $ ls
1 min read
Network

R86s刷入自制OpenWrt固件

R86s出厂是自己带了eMMC,拿不下来,不好刷。使用官方版本的刷机脚本,刷完以后每次重启系统后,分区都是ro只读,还不如自己手工捣鼓了。 下面提供三种方法刷进去,都是大同小异,先把/dev/mmcblk0的分区表清空,然后dd命令刷入区块。 创建启动用的TF(SD)卡 首先把OpenWrt系统的openwrt-x86-64-generic-squashfs-combined-efi.img镜像(ext4也可以,但意外关机后会产生分区表损坏,需要手工fsck,不然分区也是ro只读,系统不工作)用balenaEtcher写入到TF卡,然后给R86s接入键盘,开机,猛按F7键,选择TF卡启动,进入到OpenWrt界面。 清空原来的分区表 💡这里有个大坑,如果eMMC上本身存在系统,会被OpenWrt默认加载,导致报错进不了TF卡上的OpenWrt。需要在原本的eMMC上的系统去清空分区表,或者借用第三方的安装盘把分区表清空。 接着,开始干掉系统原有分区表 fdisk /dev/mmcblk0 g w 然后,我们就可以刷入系统了。 Opt 1,刷入TF卡上的系统
4 min read
Server

把物理机的Windows Server 2022迁移到PVE

物理机跑了个Windows Server 2022作为AD,现在准备迁移到Proxmox Virtual Environment(PVE),大概记录下步骤 物理机用了UEFI来启动Windows,PVE就不折腾了,直接用了传统的BIOS。所以迁移过程中需要做一些特殊处理。 迁移过程 1、PVE创建一个新的虚拟机(模板选择Default (i440fx)) 2、Windows安装Virtio Win驱动 3、Windows安装VMware Converter或者Disk2vhd,用来创建P2V的镜像。 4、Windows导入注册表mergeide.reg 5、创建物理机镜像。可以用第3步提到的两个工具(用一个就够了,看个人喜好选择,Disk2vhd比较瘦身)。参考截图 6、把创建好的.vhdx或者.vmdk丢到PVE可以访问到的地方。比如NAS、比如PVE本地磁盘。 7、把虚拟盘转换成qcow2格式并导入虚拟机 我们假设PVE创建好的虚拟机的ID是100,那么 cd /path/to/vm/image/100
5 min read
网络

千万别用TP-Link的Mesh

如果自己有核心路由,那就老老实实把TP-Link用来当AP好了。别想着用什么易展,什么Mesh。因为TP-Link会自己劫持一道数据包再转发。如果把TP-Link的无线路由器接到子交换机上,甚至还会出现TP自己充当子交换机的出口,忽略掉子交换机本身的网线出口。 话不多说,直接上图 TP-Link 无线路由器插到子交换机时,会把整个交换机的数据包劫持,特别是流量很大的交换机,延迟很厉害 从子交换机摘掉TP-Link无线路由后,易展主无线路由会劫持整个局域网,造成3.x ms的延迟 整个局域网把易展功能去掉,TP-Link的无线路由只当做纯AP使用 这才像是一个正常的局域网。
1 min read