Java 查漏补缺一些小问题

判断奇数

正确做法:

public static boolean isOdd(int i) {
	return (i & 1) != 0;
}

不能 i % 2 == 1,当 i 为负数时,求余数结果为 -1

double 精度问题

浮点运算只提供近似计算,不能产生精确结果,二进制浮点不能用于货币计算。

2.00 - 1.10

并不是精确等于 0.90 而可能是 0.8999999

解决方法一,使用整数类型,以货币单位分计算,保证整数类型足够大可以覆盖所有计算范围。

方式二,使用 BigDecimal,精确计算小数,另外一定要用

BigDecimal(String)

String 构造器,而不要用 BigDecimal(double) 构造函数。

长整数

一天的微秒除以一天的毫秒数,理论结果应该是 1000,但实际是 5.

public class LongDivision{
    public static void main(String args[]){
        final long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000;
        final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
        System.out.println(MICROS_PER_DAY/MILLIS_PER_DAY);
    }
}

long 类型可以保存这两个乘积,没有溢出。但问题在于 MICROS_PER_DAY 计算以 int 来执行的,只有运算完成才会提升到 long,而此时计算已经溢出。

乘数因子为 int 时,相乘得到另一个 int。存储结果的变量的类型会影响到计算所使用的类型。

当你在操作很大的数字时,千万要提防溢出。


2015-07-27 java , programming , long , double

花札玩法简介

简介与历史

花札亦成为花牌,源于日本,后传入朝鲜半岛,是一种传统的纸牌游戏。纸牌上画有12个月份的花草,每种个4张,整副牌48张。

纸牌牌面介绍

月份 图案 20点牌(光) 10点牌(种) 5点牌 1点牌
1月 松树 松上鹤
松上鹤
  松上赤短
松上赤短
松 松
2月 梅花   梅上莺
梅上莺
梅上赤短
梅上赤短
梅 梅
3月 樱花 樱上帘幕
樱上帘幕
  樱上赤短
樱上赤短
樱 樱
4月 紫藤   藤上鹃
藤上鹃
藤上短册
藤上短册
藤 藤
5月 菖蒲   蒲间八桥
蒲间八桥
蒲上短册
蒲上短册
菖蒲 菖蒲
菖蒲
6月 牡丹   牡丹蝶
牡丹蝶
牡丹青短
牡丹青短
牡丹 牡丹
牡丹
7月 萩(三叶草)   萩间猪
萩间猪
萩上短册
萩上短册
萩 萩
8月 芒草 芒上月
芒上月
芒上雁
芒上雁
  芒 芒
9月 菊花   菊上杯
菊上杯
菊上青短
菊上青短
菊 菊
10月 枫叶红叶   枫间鹿
枫间鹿
枫上青短
枫上青短
枫 枫叶
枫叶
11月 柳树(雨) 柳间风
柳间风
柳上燕
柳上燕
柳上短册
柳上短册
柳雷雨鼓
柳雷雨鼓
12月 泡桐 桐上凰
桐上凰
    桐
桐(三枚)
  • 20點 共5張,松上鶴、櫻上幕簾、芒上月、柳間小野道風、桐上鳳凰。
  • 10點 共9張,畫上動物或物品的牌、菖蒲間八橋、菊上盃,即「鶯、杜鵑、八橋、蝶、豬、雁、盃、鹿、燕」。
  • 5點 共10張,畫上短籤的牌,赤短三張(紅色有寫字的短籤)與沒寫字的四張紅色短籤及三張青色短籤。
  • 1點 共24張,11月為1張,12月為3張,其他月份各有兩張,只畫出植物的牌(也有不計分的情形)。
点数 役名 条件
10 五光 得到5张20点牌
8 四光 得到除柳间风之外4张20点牌
7 雨四光 得到柳间风加其他三张30点牌
6 得到赤短和青短全部六张牌
5 三光 得到除柳间风之外3张20点牌
4 雨三光 得到包含柳间风的三张20点牌
5 五鸟 得到「松上鶴」、「芒上雁」、「桐上鳳凰」
5 猪鹿蝶 得到「萩間豬」、「楓間鹿」、「牡丹上蝴蝶」
5或3 花见酒 得到「櫻上幕簾」和「菊上盃」,此役很容易做出
5或3 月見酒 得到「芒上月」和「菊上盃」,多半不採用或僅使用於追加役(bonus),其他規則和「花見酒」相同。
3 赤短 得到「松上赤短」、「梅上赤短」、「櫻上赤短」。此役別稱為「裏菅原」
3 青短 得到「牡丹上青短」、「菊上青短」、「楓上青短」。
3或6 七短 得到除「柳上短冊」以外的短冊7張。
2或5 六短 得到除「柳上短冊」以外的短冊6張。
4 月札 在部份規則中有此役種,事先約定這一局的月札花色,只要將這指定的相同花色收集到就有4點。多半切牌選定。
1 短冊 得到5張5點的冊牌,每多獲得一張5點的牌結算時點數加1。
1 佳奈 5張任意10點牌,每多獲得一張10點的牌結算時點數加1。
1 佳士 得到10張1點的牌,每多獲得一張1點的牌結算時點數加1。
1 手四 一開始時手牌中即持有一組(一個月份)中的四張牌。
1 雙手四 一開始時手牌中即持有兩組(兩個月份)中的四張牌。
1 契約 一開始時手牌中即持有一組(一個月份)中的三張牌。需先約定。
1 喰付 一開始時手牌中即持有四組配對。

游戏流程

发牌

游戏可由两人或者三人进行,如果遊戲两人进行,第一局前先抽牌決定莊家或閑家,庄家先出牌,第二局以後由前一局的勝者當親先出牌。玩家从牌堆中随意抽取一张牌,抽到月份较晚的玩家成为第一局的庄家。

两名玩家时,每位玩家各拿10张牌,台面上8张牌,其余牌放置一旁做牌堆;三名玩家时,每位玩家7张牌牌,台面上6张牌,一般顺序是先发3张台面牌,然后给三人分别发4张牌,然后台面3张牌,最后三人各发3张牌,其余牌放置一旁。

出牌

出牌时从庄家开始,以逆时针方向轮流进行。

每个玩家回合内,如果手中和台面上有相同的牌,则将手上的牌与台面上的牌匹对,然后将匹对好的两张牌放到自己的点数牌中。如果手中和台面上无相同的牌,则必须选择放弃手中任何一张牌,以开牌的方式放置于台面。在配对或者放弃牌之后,玩家从旁边牌堆抽取一张牌,以开牌的方式放置于台面上,如果这张牌与台面上的牌能够配对,就必须将配对的两张牌收回到自己的点数牌堆中,如果与台面有不同配对方式,可自行选择要吃哪一张牌,不然就得放弃这张牌。

玩家回合结束时,若有因本次吃進的牌組成「役」,則可決定是否結束牌局,玩家可以选择喊出Stop结束游戏并结算他所获得的点数,也可以喊出Go继续玩以获得更多的点数。一旦玩家结束一局,就结算得分,并开新局。

牌局結束

有三種方式:

  • 其中一方喊停(喊停權力如上述)。喊停的一方則可以计算手上所有吃進牌的役,另一方則不能計算役。所以什麼時候喊停也是一個重要的策略。
  • 双方牌都已出完,但兩方最後一張牌都沒能吃進湊成役。這種結束方式,不管你吃了什么牌,雙方就不能計算任何役。有些規則裡有「親權」,就是在這種狀況下,莊家直接得6點。
  • 某方的最后一張吃進的牌恰好湊成役,也會強制結束。這時計算役的權力在手上無牌的一方(也就是最後一次的出牌方)。

参考


2015-07-27 wiki

kml 文件学习

维基百科对 KML 文件解释:

KML全称:Keyhole Markup Language,是基于XML(eXtensible Markup Language,可扩展标记语言)语法标准的一种标记语言(markup language),采用标记结构,含有嵌套的元素和属性。由Google(谷歌)旗下的Keyhole公司发展并维护,用来表达地理标记。根据KML语言编写的文件则为KML文件,格式同样采用的XML文件格式,应用于Google地球相关软件中(Google Earth,Google Map, Google Maps for mobile…),用于显示地理数据(包括点、线、面、多边形,多面体以及模型…)。而现在很多GIS相关企业也追随Google开始采用此种格式进行地理数据的交换。

KML在 2008 年成为国际标准

KML在2008年4月14日被OGC(Open Geospatial Consortium, Inc.開放地理信息系統協會,或譯成開放式地理空間協會)宣布為開放地理資訊編碼標準(OGC KML, OpenGIS® KML Encoding Standard),而Google同時也在網站Blog上宣布不再控制KML標準,而移交給OGC去維護發展,而被採用的開放地理資訊編碼標準(OpenGIS KML 2.2 Encoding Standard)可以在這個網頁見到完整的手冊內容:http://www.opengeospatial.org/standards/kml/

地标

These are just some of the different kinds of placemarks with which you can mark your favorite places

表示地图上的点,只包含一个 <Point> 元素。在Google Earth中通常是黄色图钉。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"> <Placemark>
 <name>Simple placemark</name>
 <description>Attached to the ground. Intelligently places itself at the height of the underlying terrain.</description>
 <Point>
 <coordinates>-122.0822035425683,37.42228990140251,0</coordinates>
 </Point>
 </Placemark>
</kml>

文件结构解释:

  • XML 表头
  • KML 命名空间声明
  • 包含以下元素的地标对象:
    • 用作地标标签的名称
    • 地标提示信息
    • 指定地标在地球表面的位置点-经度、纬度和高度(可选)

路径 Path

在 KML 中,路径是用 <LineString> 元素创建的。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"> <Document>
 <name>Paths</name>
 <description>Examples of paths. Note that the tessellate tag is by default
 set to 0. If you want to create tessellated lines, they must be authored
 (or edited) directly in KML.</description> <Style id="yellowLineGreenPoly">
 <LineStyle>
 <color>7f00ffff</color>
 <width>4</width>
 </LineStyle>
 <PolyStyle>
 <color>7f00ff00</color>
 </PolyStyle>
 </Style> <Placemark>
 <name>Absolute Extruded</name>
 <description>Transparent green wall with yellow outlines</description>
 <styleUrl>#yellowLineGreenPoly</styleUrl>
 <LineString>
 <extrude>1</extrude>
 <tessellate>1</tessellate>
 <altitudeMode>absolute</altitudeMode>
 <coordinates> -112.2550785337791,36.07954952145647,2357
 -112.2549277039738,36.08117083492122,2357
 -112.2552505069063,36.08260761307279,2357
 -112.2564540158376,36.08395660588506,2357
 -112.2580238976449,36.08511401044813,2357
 -112.2595218489022,36.08584355239394,2357
 -112.2608216347552,36.08612634548589,2357
 -112.262073428656,36.08626019085147,2357
 -112.2633204928495,36.08621519860091,2357
 -112.2644963846444,36.08627897945274,2357
 -112.2656969554589,36.08649599090644,2357 </coordinates>
 </LineString> </Placemark>
 </Document> </kml>

请注意,该代码生成的其实只是高于地面的一条折线。<tessellate> 标签将该折线切成小段,而 <extrude> 标签将其向下延伸到地面。

多边形 Polygon

五角大楼的示例是通过绘制简单的内外壳,然后将它们向下凸出到地面生成的。代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"> <Placemark>
 <name>The Pentagon</name>
 <Polygon>
 <extrude>1</extrude>
 <altitudeMode>relativeToGround</altitudeMode>
 <outerBoundaryIs>
 <LinearRing>
 <coordinates>
 -77.05788457660967,38.87253259892824,100 
 -77.05465973756702,38.87291016281703,100 
 -77.05315536854791,38.87053267794386,100 
 -77.05552622493516,38.868757801256,100 
 -77.05844056290393,38.86996206506943,100 
 -77.05788457660967,38.87253259892824,100
 </coordinates>
 </LinearRing>
 </outerBoundaryIs>
 <innerBoundaryIs>
 <LinearRing>
 <coordinates>
 -77.05668055019126,38.87154239798456,100 
 -77.05542625960818,38.87167890344077,100 
 -77.05485125901024,38.87076535397792,100 
 -77.05577677433152,38.87008686581446,100 
 -77.05691162017543,38.87054446963351,100 
 -77.05668055019126,38.87154239798456,100
 </coordinates>
 </LinearRing>
 </innerBoundaryIs>
 </Polygon>
 </Placemark> </kml> 

参考:


2015-07-24 wiki , kml , google-earth

Windows 10 无法连接 Openwrt Samba

安装完 Win10 之后,发现无法使用 \\ip\\ 这样的方式来访问 Openwrt 共享出来的文件。这个问题纠结我一整天,差点想要降级到 Win8.1 去,后来总算解决了。首先介绍一下环境:Windows build 10162, Openwrt Samba。

网上介绍说,Win10 最新版的安全机制导致此类“不安全”的访问形式被禁止。所以我尝试这个帖子,给 Samba 加上密码,然后还尝试了关闭了防火墙,最后还是没什么用。然后只能继续寻找方案。然后找到如下方案:

首先确认您的权限设置没有问题。然后尝试如下方法 打开注册表 Win+R 输入 regedit, 定位到如下位置 HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters 创建一个 DWORD 项, 命名为 ‘AllowInsecureGuestAuth’ , 值设置为“1”. 最后重启计算机再次访问查看结果。

详细介绍请看这里,这个链接同样详细介绍了错误原因,AllowInsecureGuestAuth 这个键值的意思是允许 guest 用户访问共享。然后设置注册表之后必须使用本地账号,而不能登陆 Microsoft 账号,如果使用微软账号登陆,则又不能访问。出现如下问题:

无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。此账户并未得到从这个工作站登录的授权。

所以在设置中使用本地账号,然后重启,就解决了这件事情。

本文可解决如下错误:

  • 你没有权限访问、****。请与网路管理员联系请求访问权限
  • The account is not authorized to log in from this station
  • 无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。此账户并未得到从这个工作站登录的授权。
  • 无法访问,你可能没有权限使用。网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。指定的登录会话不存在,可能已被终止

参考:1 2 3 4 5


2015-07-12 samba , windows , openwrt

纪念最后的英语课

学期最后的英语课结束了,这也可能是我最后的英语课了吧。说实话我一点也不后悔上这门似乎已经多余的英语课。或许是我庆幸有一个不太一样的老师。一个上课会讲宗教的英语老师,一个上课会讲政治的英语老师,一个甚至会用英语讲哲学的英语老师。虽然我也觉得老师上课没有教案,没课件,甚至是想到什么讲什么,这样的英语课是浪费时间,但回过来想。似乎到了我们这个阶段也不需要在过多的练习阅读、听力和口语了。我总觉得学习一门新的语言,就像打开了一扇未知的大门,里面是一个新的世界。之前我可能需要借助翻译来了解那个世界,而学会了一门新的语言,我就可以徜徉在那门语言的殿堂,那里有无数的经典著作,无数的哲学思考,那些文字不会有任何的扭曲,不会被任何翻译所玷污,也不会被任何错误的翻译所曲解。我想这也就是我这门英语课给我的最大收获了。

我曾经一度的认为英语并没有什么用途,那时从来没有人告诉过我英语的诗歌也可以同样的朗朗上口,没有人告诉我大部分影响着世界的政治经济哲学的书籍都是英文写的,那个时候英语好像就是冷冰冰的语法,死板的搭配,还有无穷无尽的陌生词汇。所以我感谢最后的英语课,并不是那么死气沉沉。所以我要写一篇文章来纪念这最后的英语课。

几个网站,一本词典

时间跳回到一年前,刚刚上这门课的时候,第一节课,老师什么具体的内容都没讲,只是带我们简简单单的看了几个网站,以及介绍了几本字典。老师对比了Oxford,Longman,Collins等等几部字典,最后推荐我们用朗文字典,因为朗文是英英解释,原话是“explain everything using 2000 words”。我觉得整整一门课,自这节课之后,整门课就已经修完了。师傅领进门,修行在个人,第一节课老师把学习的方法,学习的材料都已经给了,并且推荐了一本好的词典,学习路上的一切障碍都在这一节课扫清了。听BBC,VOA,经济学人,遇到陌生单词查朗文,那日复一日之后英语自然就进步了。

几部剧,一本书

上完第一节课之后,我们的课程就开始变得多样化了,没有特定主题,苏格兰闹独立了,我们会听一些新闻,顺带了解一下苏格兰英格兰的历史,谁谁谁又宣布出柜了,我们会讨论一下同性恋的观点,我们能够讨论的东西很多很多,但学期中有条主线那就是我讲的“几部剧,一本书”,这一本书是指的快乐学哲学,当然是英文版的,而几部剧包括纸牌屋,圣经故事公平与公正公开课。整个学期中,总是会有几节课来讨论哲学家的思考。 我曾经一度想过,如果我大学没有选修过《西方哲学史》,没有上过这门英语课,我离哲学有多远,我觉得可能我的余生都很难机会去接触这些思想。我所以庆幸,我庆幸能有这样的老师,能够带领我进入这个领域。虽然到学期结束的时候,我们讨论过的哲学思想只是那本书中提到的冰上一角,我觉得即使是那冰山一角都能够让我消化很久。书中提到马克思哲学“哲学家只是在用不同的方式解释世界,而问题在于改变世界”,哲学让我们明白这个世界的运作机理。在明白这个世界为什么是这样的之后,我们所学习的专业知识,就可以改变这个世界。如果学习计算机,可以尽自己所能帮助更多的人接触到互联网,如果学习新闻,可以用自己的笔为那些不能发声的群体说出那些社会不公,如果学建筑,可以尽己所能将这栋建筑做的牢固,虽然可能并不会有人真正理解你现在所做所为,但是当你所建造的大楼或者桥梁或者你曾写过的文字或者你曾开发出的工具被历史长河荡涤,后人会铭记。 所以我准备在接下来的日子里,把那些我们还没接触到的哲学家读完,虽然可能我并不会完全理解那些思考,但是总有一天会明白哲学家们用他们的视角解释这个世界的方式。

最后贴一张图

max


2015-07-12

如何将OneDrive移动到其他位置

和 Windows 集成的 OneDrive ,总之对我来说就是空间大了一些,之前参加几个活动有 >200G 的空间,这也许是唯一好过 Dropbox 的地方了。想要知道 Dropbox 有哪些神奇的用法,可以参考另一篇文章

回到正题,Win10 下如何移动 OneDrive 到另外的位置,在 Windows 下应该都知道,音乐,下载,视频,桌面等等几个系统默认的文件夹都是可以移动位置的,我在装完移动之后的第一件事情往往就是将这些系统默认的文件夹移动到其他盘去,一来方便管理,二来系统崩了也没事,重装之后直接更改位置到曾经改过的位置,那什么文件都回来了。而这几天安装完 Win10 之后发现 OneDrive 默认的位置在系统盘用户目录下,这样怎么看都不爽,所以找到了以下方法:

  1. 右击任务栏中的 OneDrive,选择设置
  2. Unlink 解除链接
  3. 重新登录 OneDrive,登录之后就会出现界面让你选择一个新的位置

如果本地已经有过 OneDrive 的文件夹,关联之前的 OneDrive 文件夹,可以参考 Dropbox 关联原先文件夹的文章

参考: 1


2015-07-08 OneDrive

Dropbox同步已存在的文件夹

重装系统,或者在一台新电脑上重装 Dropbox 之后,如果不想 Dropbox 下载一遍所有的文件,可以使用以下的方法,让 Dropbox 同步已经存在的 Dropbox 文件夹。保证自己本地已经有一份 Dropbox 文件夹拷贝。然后执行以下操作:

  1. 假设已经存在的 Dropbox 文件夹在 E:\Dropbox
  2. 安装 Dropbox
  3. 安装完成之后,登陆,在某一界面会显示高级选项,点击高级
  4. 进入高级界面之后,可以选择将 Dropbox 放到硬盘的位置,设置自己本地的目录
  5. 因为我本地已经有了一份 Dropbox 备份,所以将 Dropbox 设置中的位置选到 E:\
  6. 因为本地已经有 Dropbox 目录,所以程序会告诉你本地已经有一份,你是否想要合并—-“There is already a folder here called Dropbox. Do you want to merge all the existing files in that folder into your Dropbox?”,选择是,即可
  7. 之后 Dropbox 就会自己比较文件差异,然后就很快的将整个文件夹同步了

解决方案来自:http://forums.dropbox.com/topic.php?id=29612

附英文版:

Just copy from your existing Dropbox folder to Dropbox folder on new machine, and do the followting step:

  1. Put the existing Dropbox folder in /home/Me/, so it will be /home/Me/Dropbox
  2. Install Dropbox and do all things it requires you to do
  3. After installation, at some point, you will be asked to choose setup type. Here you will choose “Advanced”, and “Next”
  4. Now you want to specify where to put your Dropbox folder, so tick “I want to choose where to put my Dropbox”.
  5. Since I have my existing Dropbox folder at /home/Me/Dropbox, so I change the folder to ” /home/Me/”.
  6. Since you have the Dropbox folder already in the directory, the program would say “There is already a folder here called Dropbox. Do you want to merge all the existing files in that folder into your Dropbox?”. Here we click OK, and Next.
  7. In the extended attributes, we tick “Yes, enable synching for extended file attributes (may require root password)”
  8. Next, choose whatever you want. For me I choose to synch all files inthe Dropbox folder.

来源: 1


2015-07-08 Dropbox

Dropbox 技巧

Dropbox 是一个云端硬盘,你可以在任何有网络的地方访问到它。它本身就足够的强大,和别人共享一个文件夹,添加到文件到该文件夹,文件就能出现在所有共享的人文件夹下。并且因为它公开的 API,它变得更加强大。

同步任意文件夹到 Dropbox

“如何同步任意文件夹到 Dropbox?”,这个问题好多人问过我,国内有家坚果云能够实现,其实 Dropbox 完全能够同步 PC 端任意文件夹的。查看官方的 帮助

Right now, Dropbox will only sync the files in your Dropbox folder.

当时官方并没有直接说死,并且简单的提供了他们的解决方案:将文件移动到 Dropbox 文件夹下,在 Windows 下建立一个快捷方式(shortcut),在 Mac OS X 下 alias,Linux 下使用 Link 来实现从 Dropbox 文件夹外访问的目的。

当然如果要实现的更加智能的话,关键词—-mklink。Windows 7 以上内部支持,Windows 7 以下关键词—-junction。

D: \>mklink /?
创建符号链接。

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      创建目录符号链接。默认为文件
                符号链接。
        /H      创建硬链接,而不是符号链接。
        /J      创建目录联接。
        Link    指定新的符号链接名称。
        Target  指定新链接引用的路径
                (相对或绝对)。

例如:

mklink /D "D: \Dropbox\DestFolder" "D: \SourceFolder"

命令的意思是创建一个在 D 盘的 SourceFolderm 目录,指向 Dropbox 下 DestFolder 目录。如果对其中任意一个文件夹里内容做修改,另一个同样会改变。junction 目录是 NTFS 文件系统的一个特性,语法类似,更多内容参考 这里 。需要注意的是,对于Dropbox来说,只能将Target目录放在Dropbox中,而不能在Dropbox目录里创建junction目录。而mklink命令没有这样的限制,Dropbox中的目录无论是Link,还是Target,Dropbox都能同步。附加一句,Target目录是事实上占用硬盘空间的目录。

如果你不熟悉命令行,那么 GUI 也是很好的选择,有许多的工具能够实现:

附加:如果想知道 mklink /D 和 mklink /J 的区别,可以查看 这里

哦,对了 Mac OS X 和 Linux 下使用 ln -s 吧。

Dropbox 搭建静态网站或博客

你的 Dropbox 有一个公共文件夹,你在这个文件夹中添加的文件,网络上任何人都可以访问到,只要他们有一个链接指向该文件。从而可以把所有的 HTML,JAVASCRIPT,CSS 和图像文件放到这个文件夹中, 定向到你的域名,你的迷你网站就正式上线了。 另外,如果你想有一个更简单的解决方案,使用 DropPages.comScriptogr.amPancake.io 这样的应用,它们都可以使用Dropbox免费的发布你的简单的网站。DropPages和Pancake适合定期发布网页,而Scriptogram更适合于博客格式(按时间倒序)。国内还有一家 Farbox ,最初也是同类型的网站,后来渐渐的有了其他功能。

我自己的体验来说 Pancake 的体验最好,可以绑定域名,支持 https,支持 Jekyll,支持 git 等等,这里是我的主页 http://pancake.einverne.info 也可以是 https://einverne.pancakeapps.com

更多类似 Pancake 服务请看 alternativeto ,比较出名的还有Droppages,和国产的 Farbox

保存网页图片到 Dropbox

Chrome 扩展 Ballloon for Chrome ,这个并不是单纯的Dropbox应用,这个扩展支持的云端存储覆盖面还是挺广泛的,从Dropbox,OneDrive,Google Drive,到Box,以及可能在国外流行的 Copy,SugarSync等等。

给我发送文件 Send me file direct to Dropbox

我使用 DropITtoMe ,你可以通过 这个网页 向我发送文件 up to 75M,发送密码为:einverne

结合 IFTTT 产生更多火花

Save all Gmail attachments to Dropbox

将 Gmail 附件添加到 Dropbox,网络上有些应用可以生成一个 Dropbox 的邮箱,发送到邮箱就能将文件存入 Dropbox,我觉得还是没有这个方便,我自己的 Gmail,我自己的账号,安全性好,并且不容易忘记。

Link: https://ifttt.com/recipes/98759-save-all-your-gmail-attachments-to-dropbox

Send to kindle if file is stored under kindle folder

只要有文件存入 kindle 文件夹,自动将文件作为附件发送到 @kindle.com 邮箱。

Link: https://ifttt.com/recipes/17578-if-stored-in-kindle-dropbox-folder-then-send-it-to-your-kindle

Save all Instagram photos to Dropbox

将 Instagram 照片保存到 Dropbox

Link: https://ifttt.com/recipes/56-save-all-your-instagram-photos-to-dropbox

Save all liked Instagram photos into Dropbox

将 Instagram 加心照片保存到 Dropbox

Link: https://ifttt.com/recipes/21350-shuffle-your-liked-instagram-photos-into-a-screensaver

更多 IFTTT 内容可参考另一篇 IFTTT 文章。

reference

参考文章:

最后,如果你还没有注册 Dropbox,欢迎使用我的 邀请 ,这样你我都增加500M的永久空间。


2015-07-01 Dropbox

IFTTT

简介

IFTTT 类似于一个自定义的触发器,和 Google Now,有异曲同工之妙,Google Now 能够实现的,是基于使用 Google 的数据,而 IFTTT 则是使用这个互联网的数据。稍微举几个例子, IFTTT 能够实现的神奇功能,原先可能需要自己操作很多才能实现的功能,IFTTT 可以自动化的完成。

比如, Gmail 收到一封带附件的邮件,你可能的操作就是查看邮件内容,下载附件,修改附件,然后回复邮件,而通过 IFTTT ,你可以设定一个触发,收到一份携带附件的邮件,自动将附件保存到 Dropbox ,这样当你查看邮件内容时, 可免去下载过程,直接修改本地文件,然后回复即可。https://ifttt.com/recipes/98759-save-all-your-gmail-attachments-to-dropbox

如果有人使用 Kindle ,会用 @Kindle.com 邮箱吧, 那我可以做一个触发,当我把文件保存到 Dropbox 下的 kindle 文件夹中的时候,自动将文件 通过 Gmail 发送到 @kindle.com 。

还有我想保存我加心的 Instagram 图片到 Dropbox ,我想同步 Blogger 等等,只要你能想到,只要这个平台够开放,IFTTT 就能实现。

一些好用的 recipes

Share broadcasted articles from Inoreader to Blogger https://ifttt.com/recipes/299846-share-broadcasted-articles-from-inoreader-to-blogger

Kindle 标注内容分享到 Goodreads 自动同步到 Evernote https://ifttt.com/recipes/278505-kindle-to-goodreads-to-evernote

Instagrams 加心的图片自动保存到 Dropbox https://ifttt.com/recipes/14475-save-the-instagrams-you-like-to-a-dropbox-folder

Instagram 点赞照片自动存入 Google Drive https://ifttt.com/recipes/301649-save-the-photos-you-liked-on-instagram-to-google-drive

保存新浪微博到 Google Drive spreadsheet https://ifttt.com/recipes/197676-track-all-posts-you-publish-on-sina-weibo-in-a-google-spreadsheet

自动同步特定 #hashtag 的推文到新浪微博 https://ifttt.com/recipes/301676-share-your-tweets-with-specific-hashtag-to-sina-weibo

当然官方也提供了很多,可以视自己的需求来添加自己的 recipes https://ifttt.com/recipes

总结

可能是受 InoReader 的影响,我在使用 InoReader 的时候,产生了自动化的想法,可以依靠 IFTTT 来实现, 比如 InoReader 的广播文章自动发布到 Blogger, 因为 InoReader 集成了 Pinterest 所以我可以很方便的将文章图片保存到 Pinterest ,因此我有产生了一个想法,将 Pinterest 中的图片保存到云盘link。 InoReader 中有些文章,我加上 tag Evernote,我可以自动将这些文章备份到 Evernote。 当然作为一个深度 InoReader 用户,可能觉得会很方便。然而脱离了 InoReader , 其实 IFTTT 的应用场景也并不是那么的多。

当然应用的多少和平台的开放程度也密不可分,比如上面提到的 Pinterest ,它并不提供直接的 API ,而只是我们拿到了它的 RSS ,所以可以用来做一个触发器。 而打开 InoReader 的 Trigger 可以发现慢慢一屏幕可以作为触发器。

产生的小火花

如何将网页文件保存到云盘?

网页上右击直接将文件保存到云盘 Google Drive , Dropbox 中 Chrome 插件 Balloon for Chrome https://chrome.google.com/webstore/detail/kbmligehjhghebleanjcmenomghmcohn

原文地址:https://docs.google.com/document/d/1GQIkkM_maAolbBp_hrJeDFjbsRvS5Il3s_eCxsj6CII/edit?usp=sharing

本文的产生感谢吴校杰Harry Xu张燕


2015-06-23 ifttt

Windows下查看占用端口程序

今天启动shadowsocks,突然发现本地1080端口被占用,原本是只要改一下配置中的本地端口即可,但是不想修改Chrome和Proxifier中的配置,所以就找了一下Windows查找下端口占用的方法。

##查看所有端口占用情况

cmd命令行下

netstat -ano

查看所有端口占用情况

##查看特定端口占用情况

cmd命令行下

netstat -ano|findstr "1080"

查看特定本地1080端口占用

以上两个命令中最后一列就是PID,程序对应进程ID,知道了进程ID,在任务管理器中杀死该进程即可,而在我的情况下就是NVIDIA的一个进程占用了1080端口,杀死该进程重启shadowsocks即可。

##查看PID对应进程

用以下命令查看PID对应进程

tasklist|findstr "5376"

查看PID为5376的进程名字,在我重启了shadowsocks之后就显示了以下

shadowsocks.exe         5376 Console            1     28,020 K

##附录

shadowsocks报错内容

Error: listen EACCES

2015-06-13 Windows

电子书

本站提供服务

最近文章

  • AI Shell 让 AI 在命令行下提供 Shell 命令 AI Shell 是一款在命令行下的 AI 自动补全工具,当你想要实现一个功能,敲一大段命令又记不住的时候,使用自然语言让 AI 给你生成一个可执行的命令,然后确认之后执行。
  • 最棒的 Navidrome 音乐客户端 Sonixd(Feishin) Sonixd 是一款跨平台的音乐播放器,可以使用 [[Subsonic API]],兼容 Jellyfin,[[Navidrome]],Airsonic,Airsonic-Advanced,Gonic,Astiga 等等服务端。 Sonixd 是一款跨平台的音乐播放器,可以使用 [[Subsonic API]],兼容 Jellyfin,[[Navidrome]],Airsonic,Airsonic-Advanced,Gonic,Astiga 等等服务端。
  • 中心化加密货币交易所 Gate 注册以及认证 Gate.io 是一个中心化的加密货币交易所。Gate 中文通常被称为「芝麻开门」,Gate 创立于 2013 年,前身是比特儿,是一家致力于安全、稳定的数字货币交易所,支持超过 1600 种数字货币的交易,提供超过 2700 个交易对。
  • 不重启的情况下重新加载 rTorrent 配置文件 因为我在 Screen 下使用 rTorrent,最近经常调试修改 rtorrent.rc 配置文件,所以想要找一个方法可以在不重启 rTorrent 的情况重新加载配置文件,网上调查了一下之后发现原来挺简单的。
  • Go 语言编写的网络穿透工具 chisel chisel 是一个在 HTTP 协议上的 TCP/UDP 隧道,使用 Go 语言编写,10.9 K 星星。