Magican

Programming is Magica


  • 首页

  • 归档

  • 标签

  • 留言

  • 订阅

4种 Java 多参数构建模式

发表于 2017-01-03   |     |   阅读次数

最近在实际项目中遇到了多参数初始化问题。如何在模块初始化时传入多个参数(5个以上)?如何更安全?如何更灵活?如何可扩展?如何简化调用代码?如何增强可读性?我在面试中也常提出这样的问题。以上内容如果读过《Efective Jave》会很容易在第二章找到答案。

《Efective Jave》中主要介绍了 3 种多参数构建方法,我在项目里还用到了第 4 种。下面一一介绍。

阅读全文 »

Mac 下 Paddlepaddle 安装配置

发表于 2016-10-24   |     |   阅读次数

百度新推出了paddlepaddle深度学习工具,目前官方还未支持 Mac 下 binary 安装。参考最新官方文档,笔者先基于源码编译安装,发现 BLAS 依赖是个非常麻烦的坑,最后使用官方推荐的 docker 镜像方式进行安装。

阅读全文 »

Android RemoteView 资源ID索引错误解决方案

发表于 2016-10-21   |     |   阅读次数

应用升级时如果替换了通知等 RemoteView 中的资源文件,则可能会导致新的升级包资源 id 发生变动,在部分机型上体现为android.app.RemoteServiceException。崩溃日志大致如下:

1
2
3
4
5
6
7
8
9
Bad notification posted from package com.mypkg.name: Couldn't create icon: StatusBarIcon(pkg=com.mypkg.name user=0 id=0x7f0200dc level=0 visible=true num=0 )
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1638)
android.os.Handler.dispatchMessage(Handler.java:111)
android.os.Looper.loop(Looper.java:194)
android.app.ActivityThread.main(ActivityThread.java:5637)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

前段时间升级直接导致 crash 收集平台被该 bug 刷屏,而测试过程又一次都没有复现。StackOverFlow 上也没有太好的解决方案。这里探索了一种固化资源 id 的解决方案,线上验证也是可行的,bug率明显下降。但是另一种类似的cannot expand view还未能解决。

阅读全文 »

HEXO next 主题增加搜索引擎验证

发表于 2016-08-16   |     |   阅读次数

Github 上利用 hexo 建立的博客是无法被搜索引擎搜索到的。Github 本身也不会将信息提交给引擎。所以,为了让博客信息被检索到,我们需要手动将博客网站提交给搜索引擎并验证,实际上就是验证网站是我们自己的。对 hexo 比较友好的验证方法包括:

  1. 文件验证:将一个 html 文件配置到 source 目录下,使之可以访问并获取其中的字符串。
  2. HTML meta 标签验证:在主页的 html 头里增加一个 meta 标签,记录搜索引擎提供的字符串。

如果使用了 Next 主题,source 目录下所有的 html 都会按主题模板化,这使得文件验证生成的页面中字符串无法被搜索引擎识别。虽然理论上可以对单独的地址进行模板屏蔽,但一个网站冷不丁冒出来一个风格迥异的页面还是不能让人接受。所以,我最后选择了 HTML meta 标签验证方法。

阅读全文 »

Facebook Android SDK Tips Part 1 LikeView Bugs and Fixes

发表于 2016-08-15   |     |   阅读次数

Solutions for some bugs I met when using Facebook LikeView. The docs of Facebook SDK is totally #@!$#@!$!

Official Reference: LikeView Reference

阅读全文 »

Buck 安装配置与测试

发表于 2016-08-12   |     |   阅读次数

Buck is a build system developed and used by Facebook. It encourages the creation of small, reusable modules consisting of code and resources, and supports a variety of languages on many platforms.

Facebook 开源的东东,据说微信也在用。接手的项目以前是 Ant,现在转 Gradle。但由于项目本身携带了大量历史遗留代码,并且集合了数个 submodule,编译起来非常缓慢,拖延了开发效率。这里测试一下 Buck 替代的可能性。

阅读全文 »

Effective Java - 1.1 类的创建

发表于 2016-08-08   |     |   阅读次数

获得一个实例最常见的方法就是构造器。但构造器并非在所有场景下都是最佳方案。本文收集几个特殊的构造方法以备需要。文中大部分内容源自 Joshua Bloch 的 Effective Java (second edition),实际上也是一个读书笔记。

阅读全文 »

安卓WiFi传输相关技术

发表于 2016-07-29   |     |   阅读次数

大纲

  1. Wifi传输概述
  2. WifiP2pManager类的介绍和使用
  3. Wifi热点创建相关技术
  4. 基于Wifi的文件传输方法
  5. Demo的展示与介绍
  6. 小结
阅读全文 »

Hello World

发表于 2016-07-29   |     |   阅读次数

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

Xuyang Hu

Xuyang Hu

Android & iOS & Python

9 日志
13 标签
RSS
© 2017 Xuyang Hu
由 Hexo 强力驱动
主题 - NexT.Muse
Total visited times