分类目录归档:Uncategorized

使用php转换URL从相对路径到绝对路径

Transfrom relative path into absolute URL using PHP

function rel2abs($rel, $base)
{
    /* return if already absolute URL */
    if (parse_url($rel, PHP_URL_SCHEME) != '')
        return ($rel);

    /* queries and anchors */
    if ($rel[0] == '#' || $rel[0] == '?')
        return ($base . $rel);

    /* parse base URL and convert to local variables: $scheme, $host, $path, $query, $port, $user, $pass */
    extract(parse_url($base));

    /* remove non-directory element from path */
    $path = preg_replace('#/[^/]*$#', '', $path);

    /* destroy path if relative url points to root */
    if ($rel[0] == '/')
        $path = '';

    /* dirty absolute URL */
    $abs = '';

    /* do we have a user in our URL? */
    if (isset($user)) {
        $abs .= $user;

        /* password too? */
        if (isset($pass))
            $abs .= ':' . $pass;

        $abs .= '@';
    }

    $abs .= $host;

    /* did somebody sneak in a port? */
    if (isset($port))
        $abs .= ':' . $port;

    $abs .= $path . '/' . $rel . (isset($query) ? '?' . $query : '');

    /* replace '//' or '/./' or '/foo/../' with '/' */
    $re = ['#(/\.?/)#', '#/(?!\.\.)[^/]+/\.\./#'];
    for ($n = 1; $n > 0; $abs = preg_replace($re, '/', $abs, -1, $n)) {
    }

    /* absolute URL is ready! */

    return ($scheme . '://' . $abs);
}

跨平台解决方案

桌面端

  • electron:代表作在http://electron.atom.io/apps/,包含atom, visual studio code, bearychat,Slack等,不支持XP系统
  • NW:支持xp系统,官方网站https://nwjs.io/,接口上大体与electron相仿(一位中国作者后台主要负责electron)。
  • Hex:代表作有道词典。官方网站http://hex.youdao.com/zh-cn/index.html

手机端

  • PWA: 相关文章https://github.com/sundway/awesome-pwa,代表作有aliexpress等,消息推送等功能有待验证。
  • react native: 原生应用,代表作http://facebook.github.io/react-native/(有百度facebook,百度百科,QQ),以及http://reactnative.cn/cases.html
  • weex:原生应用,代表作天猫,淘宝,钉钉优酷等,支持安卓,IOS,web三个平台
  • cordova: http://cordova.apache.org/
  • 微信小程序:功能受限

总结

  • 开发桌面应用的话,优先考虑electron,除非需要支持xp系统
  • 开发移动应用,学习成本依次为 PWA < cordava < weex < react native。其中PWA无需熟悉原生应用编程技术,cordava需要少量,而weex与react需要较多。从性能和能实现的功能上来说则顺序相反。
  • weex,react与微信小程序的开发模式都是一样的,都是将html,css代码转换为原生应用。PWA和cordava的开发模式和web差不多,差别在于PWA通过谷歌公司实现推送等原生应用功能,而cordava通过插件实现。
  • weex,react,cordava都需要通过应用渠道进行分发,而PWA需要安装谷歌浏览器57以上版本,微信小程序功能受限。

关于研发管理和绩效考核

BAT与一些创业公司是如何进行研发管理和绩效考核的?

百度、腾讯、阿里都是如何做绩效管理的?

如何制定好绩效管理体系?

英特尔和 Google 的 OKR 制度与我们一般所说的 KPI 有什么不同?

揭秘:谷歌是如何考核员工的?看看他们的OKR制度

BAT的工程师内部晋升和绩效考核是怎样的?

阿里巴巴的绩效考核—–271

百度、腾讯和阿里内部的级别和薪资待遇是什么样的?

配置nginx使用letsencrypt免费https证书

https://letsencrypt.org/

生成证书

certbot certonly --webroot \
-w /data/web/c4ys/frontend/web/ -d c4ys.com -d www.c4ys.com \
-w /data/web/c4ys/mobile/web/ -d m.c4ys.com

修改nginx配置

listen       443 ssl;
ssl                  on;
ssl_certificate /etc/letsencrypt/live/www.c4ys.com/fullchain.pem;     
ssl_certificate_key /etc/letsencrypt/live/www.c4ys.com/privkey.pem;
ssl_session_cache    shared:SSL:1m;
ssl_session_timeout  5m;
ssl_ciphers  HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers  on;
error_page 497  https://$host$uri?$args;

自动更新证书

0 3 */10 * * certbot renew –quiet
0 3 */10 * * service nginx restart

亚马逊联盟API上手指南 – Amazon.cn Product Advertising API quick start

中文注册页面 : https://associates.amazon.cn/

英文注册页面: https://associates.amazon.com/

如何申请美国Amazon联盟注册教程

亚马逊联盟API上手指南 – Amazon.cn Product Advertising API quick start

python-amazon-product-api

Docs: Product Advertising API

Signed Requests Helper

scratchpad