查看详情

IFrame 等开放服务存在的法律风险警示

目前很多视频服务商比如 Bilibili, 优酷, 腾讯等都支持基于 iFrame,将自己上传的视频或者别的作者的视频, 内嵌到自己的网站,从而提升内容或者宣传的质量。记得很早的时候火影忍者中文网就是嵌入的优酷的视频。 IFrame 不仅降低了接入成本,也降低了接入门槛,稍微懂点相关的知识就可以投放到自己的网站。但是这里实际上会存在一种安全警示。 我们知道腾讯视频除了(B站)是有前贴广告的,这么做是为了增加金主爸爸的品牌广告的曝光量。而基于 IFrame 的形式,很容易被一些广告主当做免费的视频托管平台,把自己的一些教程或者宣传该网站金主爸爸广告的视频嵌入到比较吸睛的内容上(赌博,色情等)。 不妨看下下面这张截图: 是不是很多人经常不慎点进去,为了方便大家使用,网站主可能会投一些教程视频,方便大家学习如何充值以及如何参与等。然而这里面的风险点,便是这样的网站对前贴曝光的品牌比如一些金主爸爸的(保洁,苹果,华为等),实际上是品牌影响的,就像很多人一看这个视频,会觉得是这些品牌在该网站的投放,从而进一步对该网站产生信任或者对该广告品牌产生质疑。 又或者在某些色情网站上,色情网站流量较大经常会嵌入一些游戏的广告链接导流,比如经常看到渣渣辉或者山鸡的传奇游戏广告,这些网站为了宣传游戏的吸引力会投入一些视频做宣传。因此这些色情网站也会嵌入到当前网站中。 然而风险点同样在于前贴广告的曝光,会非常影响这些广告主品牌效应,你想想你在浏览 xxx 网站,刚好你是某品牌的员工,看到自家的广告在这样的网站上播放,可能内心一种无奈在心头,又或者更多问号在头上? 所以我们在做任何开放服务尤其基于 iFrame 做好对 详情 »

查看详情

七月天

傍晚渐渐吹起了热风,我知道暑假来了。 暑假的日子 最近迷雾剧场,《隐秘的角落》不断刷着信息流。当然自己也不忘记追剧。排除里面神秘的案情和一些小细节。自己印象最深的便是开篇,朱朝阳知道妈妈又要去值班的时候,飞奔出去寻找小伙伴的时刻。自己依稀记得,暑假天,会和小伙伴冒着35度的烈日去爬山,然后去学游泳,或者沿着河边抓鱼,一行三人,回来的时候再一起吃起冰糕。爬山的时候便也希望能偶遇电视剧中神秘的山洞,又或者遇到神秘奇珍异兽什么的。可是最后似乎也神秘都没有。日子渐久远,似乎这三人小伙伴,也很久没相遇了,暑假天的日子,还是让人欢喜不少。 业余的开发 最近一直在做之前完全没涉猎的 Android 。想起上一次开发完整手写 Java 代码的时候还是14年 黑客马拉松的比赛。确实真的是变成了 面向 stackoverflow , 大概整体感受对于界面这种重构还是觉得 Web 前端还是挺优势的,效率和设计都挺好的,iOS 无论是 swift 还是 Android xml 写着还是挺别扭的。所以还是长期看好 flutter 或者 react native 这种设计模式。不过话说回来,就是整体 kotlin 详情 »

查看详情

Android 自定义滚动条

做前端肯定离不开设计师要求自定义滚动条内容,相对于 iOS / Web ,Android 相对比较容易控制,我们可以非常方便的改变 View 或者 WebView 的样式。Android 提供了两个 xml 属性 android:scrollbarThumbVertical android:scrollbarTrackVertical 他们分别表示我们需要改变滚动条的拖拽部分和底部轨道的样式。 如下图 比较常规的设计,我们实现一个带圆角的矩形,我们在 drawable 目录下新建两个文件 custom_scrollbar_thumbnail.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > 详情 »

查看详情

修复 Android Studio Error while executing: am start -n 启动失败

大概这种问题只会突然出现,就是在真机调试突然报这样的错误 Error while executing: am start -n "com.xxx/com.xx.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=pagekageName/.ac.WelcomeActivity } Error type 3 Error: Activity class {com.xxx/com.xx.MainActivity} does not exist. Error 详情 »

查看详情

六月天

刚迈入六月份,虽然夏天的风吹起来了,就是还是大了点。 创业 还是愿意在月记里穿插些关于创业的体会。最近 SpaceX 载人飞船的事情,朋友圈刷屏了。大概很多人是觉得,新的领域需要特别坚持的人才。任何事情,收益会在坚持里不断增长,虽然 90 后跳槽很频繁,虽然跳槽会有超出预期的收益,但是长期收益不一定很好。一万小时理论,在任何行业或者某些事情一定是成立的。创业中后期,需要热情,也需要科学化的管理策略,我也特别赞同,并不是所有人都适合创业,它对 人心的磨砺,远超所谓技能或者某些方面的知识的要求高多了。创业一定是一件自我怀疑的事情。如果你特别看好领域,坚持投入,一定有回报的,保持耐心。 可奈 五月底和狼叔吃了顿饭。得知远去杭州淘宝,大概我也觉得这是菜爷走后,整个大前端团队的的尾声。记得17年五月份也是这个时候,那个时候还在忙军师联盟的事情,第一次写关于 YK 的一些看法: 最近在YK那边,其实圈子氛围挺好的,既然我们过去就肯定是希望带来一些 change的,改变或多或少是痛苦,但是谁 TM 叫 A 买了。自己买的东西总不能让它自由生长吧,自己不方便谈论战略性的问题,但是未来会证明, 详情 »

[Netflix Diary]2020-05-27

今天第一件事情就是停掉了阿里云那个轻应用服务器。感觉又是活动想薅羊毛结果自己赔本的事情,什么东西都没弄然后就过期了。 晚上和狼叔吃了一顿饭。他远去杭州淘宝做前端智能化。自己把 niou 的介入化为大优酷前端的转折点,菜爷离开北京,把团队留给  niou ,然后开始了优酷第二代前端的组建工作。现在看看一代这些前端离去,真的是各种滋味在心头。总的来说大文娱的发展已经看到在三家中开始显现颓势了。晚上回去已是十点半,看了下 kotlin 的课程,发现也还是帮助不少。 详情 »

【Netflix Diary】2017-05-26

今天开始想 Netflix 面试的事情。其实这个说句实话我自己都觉得没谱。但是最近看 30 岁的视频,总觉得这一辈子少有为了一件事情特别努力的情况。最近看了一些翻墙去谷歌和FB 的比比皆是。当然也不是没什么机会。 我觉得 Netflix 面试需要准备三个方面的东西。 算法 英语 基础知识 大概也是从今天开始制定了每周的一个计划和日程,目标是十月份准备第一次 interview 挑战 , 其实这个年龄还想着,但是自己总觉得还是应该为梦拼一次。上一次连载日记还是创业的时候,自己一直想的是人还是应该多少为一些事情努力到无悔。 大概必须得每天腾出时间学习和记忆。一直觉得记忆很重要,需要记住很多东西才有效。 今天开始,你值得努力。 详情 »

查看详情

Swift 和 Kotlin 获取代码执行行数和文件名

如果我们需要需要实现一个类似打印当前函数调用的文件名和函数的化,我们需要借助一些类库。 在 swift 中我们可以借助 #file 和 #line 来实现数据获取/。 类似 public static func log(file: String = #file, line: Int = #line) { } 而在 Android 我们需要借助 Thread 来实现 var str = "" try { val filename = Thread.currentThread().stackTrace[your_trace_index].fileName val line = Thread.currentThread().stackTrace[your_trace_index].lineNumber str = " $filename [l$line]" } catch (err: 详情 »

查看详情

VR 中 Monoscopic 和 Stereoscopic 的区别

无论是 VR 拍摄还是 VR 开发中,我们都会遇到这个问题,关于Mono(monoscopic) 和 Stereo(stereoscopic) 的选择。这里简单给大家科普下 在 AR/VR 显示技术原理 (上) 中,曾经涉及到,双眼和单眼成像的区别。而 Monoscopic 和 Stereoscopic 的区别就和这个相关。 Monoscopic (简称 mono) 实际上来源一个镜头的采集,通过本身角度的变化,类似于从0-360 这样来进行连续采集,而这样的图片在还原的时候,有个特点,就是周围距离自己的距离是一致的,比如最近自如VR 的单摄像头拍摄就是这个原理。 Stereoscopic(简称 stereo ) 实际上是双摄像头进行采集。我们知道人体双眼对距离的感知是很明显,所以这种方式采集对物体的距离感非常明显,这也是专业 VR 摄像所采用的设备。比如 Insta360 Pro2 我们可以看到它的镜头分布。 而它由于是多摄像头拍摄,因此平面视频会是不同的风格, 由于这是模拟人眼的方式,因此人类在感知还原的时候对于深度和距离非常准确,VR 详情 »

查看详情

Swift 使用 Observe 监测页面滚动

Swift 以前是通过 addObserver 来实现对某个属性的变化监听,而最新的变化,书写起开更加方便。 observer = test.observe(\.field, options: [.new, .initial]) { (object, change) in print(change) } 一定要用属性赋值当前的 observe 结果,没有的话可能会造成 change 不生效。 对 UIScrollView 的滚动监听,我们可以使用 UIScrollViewDelegate extension UIScrollViewDelegate{ func scrollViewDidScroll(scrollView: UIScrollView){ //do something } } 这里推荐使用 Observe 比较方便的是可以进行模块的逻辑的拆分,我们只需在自己的组件里面进行监听 class ComponetView: UIVIew { private var observation: NSKeyValueObservation? init(targetView: UIView) { observation = targetView.observe(\.contentOffset, options: 详情 »