发现了一个Mac桌面widget的神器 Übersicht

毕业前后除了聚会没做什么实事,整天在闲逛混时间,偶然间在知乎上发现了这个 Übersicht神器,觉得很有意思,也很符合我想要的“个人信息中心”的梦想,就准备研究一下。也欢迎更多的朋友来研究,做出更多更有趣的widget。
 command: "echo Hello World!"

  refreshFrequency: 5000 # ms

  render: (output) ->
    "<h1>#{output}</h1>"

  style: """
    left: 20px
    top: 20px
    color: #fff
  """

上面是官网上的一段示例代码,虽然我对原理还不清楚,但是它的编程过程还是非常的清晰。整个脚本是用coffee script写的,当然官网上说是纯javascript也可以(coffee script我并不了解,只大概晓得它是javascript的优美版本,而js目前也只是学了一个皮毛。。。),command是需要在终端中运行的命令,refreshFrequency是运行的频率,以毫秒为单位,render是想要输出的格式(HTML5),style则是css。简单的来说就是通过在终端中以一定的频率运行一条命令,输出的字符串显示在由html5和css构成了widget中。可见这种方式不仅在显示的内容,更在现实的格式上有非常大的灵活性,可以DIY很多东西。它事实上是在localhost:41416上运行的,至于它如何开的本地服务器,又如何投射到桌面上我还不了解,也许需要

官网上提供了一些示例,我比较喜欢的有sys-monitor, calendar, countdown这几个,分别入下图所示

我前段时间一直在研究RSS的问题,很想把所有想关注的网站的信息都集中到一起,其中就包括直播吧上的比赛日程,用RSS工具搞了很久也没搞好。受到了一个叫world cup的简单widget的启发,它就是通过python脚本爬取当日的比赛信息,并通过字符串输出显示在html框架中,那本我也可以用爬虫爬取直播吧上今天的赛程然后显示啊!说干就干,先研究python怎么写爬虫,找到了这个很好的博客,照着它用urllib2抓取html,用BeatuifulSoup解析

import urllib2
import bs4
from bs4 import BeautifulSoup
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
#from datetime import *

response = urllib2.urlopen("http://www.zhibo8.cc")
soup = BeautifulSoup(response.read())
#today = datetime.now().strftime('%Y-%m-%d')
today = soup.h2.contents
matches = []
for m in soup.h2.parent.next_sibling.next_sibling.ul.contents:
	if m != u'\n':
		# print m.contents[0]
		i=0
		match = ''
		while(True):
			if isinstance(m.contents[i],bs4.element.NavigableString):
				match += m.contents[i]
			elif isinstance(m.contents[i],bs4.element.Tag):
				if m.contents[i].name=="a":
					break
				elif m.contents[i].name=="b":
					match+='<b>'+m.contents[i].string+'</b>'
				else:
					match+=m.contents[i].string 
			# print match
			i=i+1
		matches.append(match)
print '</br>'.join(matches)

注意这里最后将输出为简单的html格式,并设置了字符的编码(具体原理还不清楚)。接下来就是coffee script的部分,很简单

command:"/Users/Pro/canopy/bin/python zhiboba.widget/zhiboba.py"
refreshFrequency: 3600000
render: (output) -> """
<div id="container">		
		#{output}		
</div>
"""
style:"""
top:10px
right:10px
#container
		background rgba(#000, .5)
		margin 0px 0px 0px
		padding 10px
		border-radius 5px

		color rgba(#fff, .9)
		font-family Helvetica Neue
		font-size 8pt
		font-weight 300
b
	color #63B8FF
"""

遇到的一点小问题是在command中直接写python会显示找不到bs4的库,而我明明已经在系统默认的python中安装了这个库,最后只能通过写python的完整路径来解决。另外就是这里我设置了每一小时更新一次,并且将有加粗标签的文字设置为了淡蓝色便于分辨,最后的效果图是这样的


总体来说还是有成就感的,以后准备进一步的探究这个东西,也许要读源码等,希望能把自己想要的信息都能及时的显示在桌面上,做一个hecker大笑。有一点遗憾的是我发现显示在桌面上的widget是无法交互的,但是总的来说它依旧有非常大的灵活性,接下来还会继续研究。最后还是希望自己能不要荒废掉这个暑假。。。



好的,以下是Java代码实现: ```java public class HexASCII { public static void main(String[] args) { for (int i = 0; i < 256; i++) { System.out.print(Integer.toHexString(i).toUpperCase()); System.out.print(" "); System.out.print((char) i); System.out.println(); } } } ``` 运行结果如下: ``` 00 NUL 01 SOH 02 STX 03 ETX 04 EOT 05 ENQ 06 ACK 07 BEL 08 BS 09 HT 0A LF 0B VT 0C FF 0D CR 0E SO 0F SI 10 DLE 11 DC1 12 DC2 13 DC3 14 DC4 15 NAK 16 SYN 17 ETB 18 CAN 19 EM 1A SUB 1B ESC 1C FS 1D GS 1E RS 1F US 20 21 ! 22 " 23 # 24 $ 25 % 26 & 27 ' 28 ( 29 ) 2A * 2B + 2C , 2D - 2E . 2F / 30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 7 38 8 39 9 3A : 3B ; 3C < 3D = 3E > 3F ? 40 @ 41 A 42 B 43 C 44 D 45 E 46 F 47 G 48 H 49 I 4A J 4B K 4C L 4D M 4E N 4F O 50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W 58 X 59 Y 5A Z 5B [ 5C \ 5D ] 5E ^ 5F _ 60 ` 61 a 62 b 63 c 64 d 65 e 66 f 67 g 68 h 69 i 6A j 6B k 6C l 6D m 6E n 6F o 70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w 78 x 79 y 7A z 7B { 7C | 7D } 7E ~ 7F DEL 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0   A1 ¡ A2 ¢ A3 £ A4 ¤ A5 ¥ A6 ¦ A7 § A8 ¨ A9 © AA ª AB « AC ¬ AD ­ AE ® AF &macr; B0 ° B1 ± B2 ² B3 ³ B4 ´ B5 µ B6 ¶ B7 · B8 ¸ B9 ¹ BA º BB » BC ¼ BD ½ BE ¾ BF ¿ C0 À C1 Á C2 Â C3 Ã C4 Ä C5 Å C6 Æ C7 Ç C8 È C9 É CA Ê CB Ë CC Ì CD Í CE Î CF Ï D0 Ð D1 Ñ D2 Ò D3 Ó D4 Ô D5 Õ D6 Ö D7 × D8 Ø D9 Ù DA Ú DB Û DC Ü DD Ý DE Þ DF ß E0 à E1 á E2 â E3 ã E4 ä E5 å E6 æ E7 ç E8 è E9 é EA ê EB ë EC ì ED í EE î EF ï F0 ð F1 ñ F2 ò F3 ó F4 ô F5 õ F6 ö F7 ÷ F8 ø F9 ù FA ú FB û FC ü FD ý FE þ FF ÿ ``` 以上是打印出了十六进制编码的ASCII字符集。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值