Owncloud8以后版本如何直接从后台放文件

在Owncloud还年轻的时候,直接从后台上传文件到Owncloud的文件目录,会自动的归纳到文件系统里,并显示到网页上。
但自从Owncloud升级到高版本之后,这个特性就消失了。就是你可以放,但是人家就是不收录。

这个急坏了我了,因为有些文件通过正规上传功能就是死活上传不上去。这样我只能通过FTP先传到服务器上。
经过千辛万苦的尝试,有办法了。

第一种是执行Owncloud的CLI命令。具体位置是在Owncloud根目录,有个文件叫OCC,实际调用的是console.php,是个PHP脚本。通过命令 PHP OCC fils:scan –all即可重新扫描文件目录下的所有文件了。代价是所有文件的ID会重置,导致同步的桌面客户端会认为都是新文件,继而全部重新下载。不过,我不用同步客户端。。。。
在使用这种方法的时候我遇到了问题,因为Owncloud的Base.php使用了PHP5.4特性,虽然我在godday的管理页面选择了5.4,但在SSH中使用PHP命令的时候,仍然提示为PHP 5.3(Fxxk Godday)。

既然此路不通,我研究了下代码,发现了一个更简单的方式——–
[truncate oc_filecache;]命令
由于我使用的是MySql作为Owncloud的后台,就给了我操纵表的机会。。。执行之后,重新登录,文件都出来了。

// Update 1
答记者问,truncate命令要进入MySQL后台执行,truncate掉OwnCloud的oc_filecache这张表。之后重新登录OwnCloud,Owncloud系统会自动重新填充数据。

瑕疵

世界上没有完美的东西
世界上没有毫无瑕疵的东西

如果基因遗传体系是完美的,将不会有进化。
生物不会如此多样。

如果力学是完美的,原子核不会结合。
宇宙仍是一团雾气。

而我们在软件工程或者生产线生产中却在极致的追求无瑕疵。

贴心的PHP:内置常量

用各语言做网站的同学,经常遇到的一个问题就是在不同操作系统下路径格式不同。有的必须用“\”,有的必须用“\\”,用的得用“/”之类的。如果我们的开发机和生产环境不是同一种操作系统,总是会遇到麻烦。

但PHP居然贴心的准备了两个内置常量,DIRECTORY_SEPARATOR与PATH_SEPARATOR。

用法很简单。

<?php
$path = join(DIRECTORY_SEPARATOR, array('root', 'lib', 'file.php');
?>

或者

<?php
require 'webroot' . DIRECTORY_SEPARATOR . 'index.php';
?>

之后PHP会自动的根据运行的系统将DIRECTORY_SEPARATOR替换成适当的符号。

但是有的同学说了,如果每次都要敲出这么长的一个常量好烦啊。那么我们可以这么做。Best Practice from CAKEPHP。

<?php
/**
 * Use the DS to separate the directories in other defines
 */
if (!defined('DS')) {
    define('DS', DIRECTORY_SEPARATOR);
}
?>

然后在地方就可以这样写了。

<?php
require 'webroot' . DS . 'index.php';
?>

Salesforce的Auto Number

在Salesforce中新建Object的时候,可以对Name选择Auto Number,即自动编号。如果没有仔细阅读说明的话,会有一个很容易让人迷惑的地方。

在选择时候,Salesforce提供的示例为 示例:  A-{0000}。

那么问题来了,假设我如示例一样设定了4个0,那么当我的数据编号已经到达了A-9999会怎么样呢?

真实情况是,什么都不会发生,A-10000会被正常创建,A-10001也会被正常创建。

原因是这样的,A-{0000}的意思,是至少要有4位数字,不足则补零。例如,第99条数据的Name为A-0099。就是说,这个格式只是用来标注补零的位数的。。。不是用来限制编号最大位的。。。

然后,在设定是还可以输入开始数字,假设我设定从99999开始呢? 还是没关系。但如果设定的开始数字为1,000,000,000以上,则会告诉你,不能大于这个数。

OK,那我设为999,999,999。接下来创建数据会怎样呢?

没错,A-1000000000会被正常创建,在建一条,A-1000000001也出来了。。。。。。

所以不用担心编号用光的事情了。200多位。。。我觉得有生之前都不一定用得没了。。

如何在Windows下安装Composer

首先,没有那么复杂。参考这里

0. 确保PHP安装正确。验证方式为在CMD里执行php -v,如果看到了版本信息,继续。

1.下载composer.phar,然后放到PHP的安装目录里。与php.exe平级即可。

2.在此路径下新建一个脚本文件,叫做composer.bat。内容为

@php "%~dp0composer.phar" %*

3.重新打开一个CMD,执行composer –version,如果看到版本信息,打完收工。

// Update 20160812

其实Windows下直接就有安装包。。。尴尬。

// Update 20160812 2

下面代码可以解决获取package龟速的问题。供应商官网


composer config -g repo.packagist composer https://packagist.phpcomposer.com

全宇宙最好用的IDE——的弟弟 VS Code

虽然VS已经开放社区版(免费版),但由于有限的内存和CPU,始终呆在Eclipse阵营。Eclipse也不负众望,胜任了我大部分的开发工作。

但是有的时候,还是觉得Eclipse太重了。转而去用文本编辑工具,比如Notepad++,又觉得太轻了。因为有多种编程语言的语法高亮,检查,提示和代码块插入的需求,尤其是Apex(Salesforce的开发语言,类似于Java),因为还是很小众,所以很难找到良好的第三方支持插件。而目前官方的Salesforce Eclipse插件的功能又是那么的不堪。我坚信Salesforce对于开发者是不重视的,甚至是有仇的。

VS Code刚诞生,版本只是0.1的时候就开始迫不及待的使用了。目前版本已经到达1.4,并且各路插件功能趋于稳定。活跃的插件社区保证了我对各种语言的需求。并且这个IDE在功能满足我所有需求的同时仍然保持足够的轻。

如果对目前使用的IDE感到重的喘不过气的话,不妨试一试吧。

 

陋室铭-谷歌翻译阅读版

さんぶざいがお ゆうせんぜみんー
すいぶざいせん ゆうろんぜりんー
すすろうす うぇーうでしん
たいへんさんじぇる さおせるれんちん
たんしゅうゆうほんろ うぇーらいうおばいディン
こういちゅうすうちん ゆうじんじん
うすじゅうずらんえー うあんとうずろうしん
こんずゆ へろうずゆう

放到谷歌翻译里让谷歌娘去读吧。。。

Salesforce也有Explain了

Explain在各大数据库里,是调式SQL的利器。
虽然众所周知,Salesforce底层用的是Oracle。但从来没有开放过调用Explain的方法。

终于,有变化了!
目前作为一个beta特性,Salesforce将Explain放进了REST API
不过比较蛋疼的是,返回的是json,需要自己处理下。由于是beta特性,所以Salesforce不做任何技术支持。

<?php 
// Get your token via REST API 
$token = getToken(); 
$remote_server = "https://****your instance name****.salesforce.com/services/data/v37.0/query/?explain=*****your soql*****"; 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $remote_server); 
curl_setopt($ch, CURLOPT_POST, false); 
$header[] = "Authorization:Bearer " . $token; 
curl_setopt($ch, CURLOPT_HTTPHEADER,$header); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$data = curl_exec($ch); 
curl_close($ch); 
echo $data; 
?>

// 2016-09-28 Update1

其实在Salesforce Developer Console中早就有这个功能了。。。但是对于分析SOQL的瓶颈还是很有帮助的。

Salesforce中一条数据占多大存储空间

如果把Salesforce视为一个数据库的话,它与其他牌子的数据库不大一样。
按理说,不同的表因为字段数量不同,字段多的应该比字段少的占用空间要多。

但是Salesforce却无视字段数量,就是说字段数量不会影响到占用空间。
大多数情况,每条数据占用空间为2KB
但是还有例外

Leads — 2KB
Contacts — 2KB
Accounts — 2KB
Person Accounts – 4KB
Opportunities — 2KB
Forecasts — 2KB
Events — 2KB
Tasks — 2KB
Cases — 2KB
Case Team Member – 2KB
Solutions — 2KB
Notes — 2KB
Custom Reports — 2KB
Campaigns – 8KB
Campaign Members – 1KB
Contracts – 2KB
Google Docs – 2KB
Quotes – 2KB
Tags: unique tags – 2KB
Custom Objects – 2KB
Quote Template Rich Text Data – 2KB
Articles – 4KB

所以在进行存储空间估算的时候要注意例外的SObject。