了解微型创业

最近听了一场知乎live,讲的是微型创业,在此记录一下。 理解小众市场 微型创业首先是小,面向的是小众市场,一两个人就可以搞定。小的特点,就是成本低,灵活,针对性强,能解决特定问题。 如何发现/选择小众市场 发现需求而不是创造需求,发现需求就成功了一半 1.画个圈圈型 从自身爱好出发,有一双善于发现的眼睛,加上别有用心一点。 2.望远镜型 善于利用工具,利用微信指数了解热点,市场的变化。谷歌趋势,百度指数。 利用谷歌关键词发现市场,用谷歌搜索Instagram 发现关键词 Instagram download pictures, 继续谷歌,点开排名第一的网站,输入图片链接地址就可以下载下来。盈利方式就是谷歌的ad scene广告系统,每年人民币20w. 网上的资源和开源的工具都很多,如果你足够机智,肯定能用好网上的工具。 3.犀牛鸟型 共生关系,国际国内大象级app很多,微信、Facebook,YouTube,有人做微信机器人的额产品收入非常可观,通过机器人管理微信群消息。github搜索wxbot,找到相关代码资源。比如YouTube的视频转gif动图链接,每个月700万流量,7000美元一个月,YouTube mp3.org 输入视频提取音频,技术难度没有,月流量2.7亿,270万美元。这种做大象周边小众市场的例子还有很多,只要你多琢磨琢磨,一刀切进去肯定是有肉吃的。 4.总在河边走型 想做某个市场但是不懂,先勇敢地跳进去,然后再深入。比如跨境电商,赚差价。比如区块链,很多小白不懂区块链,但是需求很大,如果深入研究把东西教给大家。 验证需求 MVP 简单落地页 广告投放 重点:市场比你的产品要重要的多,一个没有市场的软件应用仅仅是个产品而已,大部分开发人员都是有个点子,花了几个月把产品做出来,结果发现没有人购买。这样的产品,即使花再大的力气也没什么卵用,产品成功的最重要因素,不是人,不是市场的运营也不是产品,而是 是否有一群人愿意付费购买。所以在确定不是伪需求之前一定要上个线,走两步,验证需求的第一步,mvp,就是最小化可行性产品,开发产品时最好先做一个原型。通过测试收集用户的反馈,快速迭代,最终适应市场的需求。做个独立页面,是否有用户原因购买,不需要开发完成。 营销和流量 建立跟踪,底层最重要的是数据,前提是建立好数据的跟踪。 最初的推广 Reddit Product Hunt v2ex 一定要和用户建立联系 浏览页面时弹出层,留下优享,数据证明非常有效 SEO 一定要优化,兵家必争之地,SEO做好会产生长期价值,时间长了会发现,每天的稳定流量大部分来自SEO,对于程序员没什么难度,认真做好每个细节就好。

April 30, 2021 · 1 min · Egbert Ke

长连接和短连接

首先,连接指的是传输层的TCP连接 连接就是连接,没有长短之说 是长是短取决于你是否关闭连接 建立连接后进行一次读写就马上关闭,这条连接对你来说就是短连接,如HTTP0.9, HTTP 1.0(默认关闭,支持Keep-Alive)就是这样 HTTP 1.1协议的headers中默认有Connection: Keep-Alive,告诉HTTP服务器不要关闭连接,后续的HTTP请求继续用这条连接,那这条连接对你来说就是一条长连接 另外,socket的SO_KEEPALIVE选项跟http中的Keep-Alive是完全不同的东西,前者是服务器在一条连接至少空闲2小时后发送探活包检测客户端是否还有响应,意在检测半开连接并关闭,后者前文应该已经说明白了。

April 30, 2021 · 1 min · Egbert Ke

使用Privoxy转发http到socks

国内服务器ping不通github,正好有一台香港的socks server,如果可以将http转发到这台server,问题就解决了。 privoxy是一款不进行网页缓存且自带过滤功能的代理服务器,针对http、https协议。通过其过滤功能,用户可以保护隐私、对网页内容进行过滤、管理Cookie,以及拦阻各种广告等。1 privoxy官网 大概意思是从http协议到其他协议的转换,另外可以做一些http内容的过滤、修改等。 安装privoxy(ubuntu) apt-get install privoxy 默认privoxy服务已经通过systemctl管理,systemctl status/stop/start privoxy查看/停止/启动privoxy 配置文件在/etc/privoxy/config 在文件末尾加上forward-socks5 / host:port . 将host:port替换成你的socks local server 最后按个.表示转发到socks server之后不用再转发到某个http server了 如果想这个privoxy服务可以被外部访问的话,比如本机通过这个privoxy进行科学上网,可以将配置文件中listen-address 的localhost改成0.0.0.0 最后,重启服务: systemctl restart privoxy https://zh.wikipedia.org/wiki/Privoxy ↩︎

April 29, 2021 · 1 min · Egbert Ke

Java传递函数实现懒执行

看下面这个方法: public static JSONObject call(byte[] img, String algName, String algUrl) { long startTime = System.currentTimeMillis(); try { HttpResponse resp = OkHttpUtil.post(algUrl, MediaType.parse("application/octet-stream"), img, connectTimout, readAndWriteTimeout); // 省略代码块... } catch (Exception e) { // 省略代码块... } } 方法的入参是图片二进制流,模型名称和模型地址,方法的操作是用图片调用对应的模型,然后做一些日志记录、监控指标上报、错误处理等操作,最终返回模型的json格式结果。 可以看到其中模型的调用方式是确定的,直接将图片放在http body中,content-type为application/octet-stream 现在有一个模型,调用方式不一样,需要以form-data的格式把数据传过去,图片的名字必须为image, 像这样: OkHttpUtil.post(url, null, "image", img, null, 10000L, 10000L) 两者唯一的区别只是调用方式不一样,如果能把调用方式抽象出来单独传递的话,那是极好的。像Python这类的动态语言是很容易实现的,直接将函数作为参数传递,之后用()调用运算符调用即可: def func(): return "world" def outter(fun): print("hello, {}".format(fun())) outter(func) # "hello, world" 联想到Java中是否也可以这样呢,Java也是可以支持函数式编程的,自然也是可以的。实现方式如下 定义一个函数式接口: @FunctionalInterface public interface Lazy<T> { T value(); } 增加一个重载call方法,需要额外传入Lazy类型的参数httpHolder...

March 25, 2021 · 1 min · Egbert Ke

博客再开张

最开始写博客应该是大一下学期左右就开始了,当时是在CSDN上写,主要记录一些平时学习和开发时遇到的一些问题和解决方式的经验文章,也有一部分是算法题的题解。这是我CSDN主页地址,截止目前已经有10w+的访问量了。 后来觉得有自己的独立博客更酷一些,也整过hexo这类的博客引擎,觉得限制较多,部署繁琐,觉得从头到尾自己设计开发一个博客更拽,当时就真的开始从头写博客网站,数据库设计、后端接口、前端样式、简单的评论功能、后台管理,后台新建文章的页面样式都自己在大学宿舍里一点点地写,印象比较深刻的有两个地方,一个是实现了文章发布之后保存为静态文件,之后再访问时直接托管到nginx,请求不用到达后端。另一个是markdown解析器和代码高亮的调研,当时调研了好多的markdown解析,最终终于找到了自己满意的markdown-it,还实现了例如自定义图片大小和图片浮动方向的语法和对应的样式。之前那个博客的域名已经迁移到这里了,目前可访问的地址是https://123.206.178.92,之后会将那个博客的文章陆续迁移到这里来。 时间久了之后,发现维护起来比较麻烦,而且技术含量不高,就想选一个比较方便管理、扩展的博客系统,偶然的机会发现了typecho,发现挺不错,整个框架很轻,主题和插件修改起来也方便,而且是开源的,可以自己随便写一些扩展或者做一些修改。然后又找到了handsome 这款typecho主题,这是一款功能丰富、做的很用心的主题,虽然是收费的,但是没关系。后面会基于这个主题做一些样式上的设置和定制。 写博客是个好习惯,博客的本质是记录,记录自己的成长,记录自己的心得体会、对生活的感悟。写博客时就像跟自己对话,这种感觉有些微妙。 我的博客又开张了,希望自己坚持写下去。

March 22, 2021 · 1 min · Egbert Ke