-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.html
921 lines (510 loc) · 43 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
<!DOCTYPE html>
<!--[if IEMobile 7 ]><html class="no-js iem7" xmlns:wb="http://open.weibo.com/wb"><![endif]-->
<!--[if lt IE 9]><html class="no-js lte-ie8" xmlns:wb="http://open.weibo.com/wb"><![endif]-->
<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en" xmlns:wb="http://open.weibo.com/wb"><!--<![endif]-->
<head>
<meta charset="utf-8"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>netwjx 混乱与有序</title>
<meta name="author" content="netwjx"/>
<meta name="description" content="前阵子去滑雪, 提前在网上找了一些滑雪的注意事项和准备, 但是等自己亲身体验后感觉还缺点, 这里整理了一些注意事项和准备. 行程 一般滑雪场都在郊区, 从起床到进入雪场, 一般需要至少3小时, 雪场开始营业的时间是早8点左右, 结束是一般下午4 5点种, 中间可能需要在雪场用餐. 这个时间要计算好 …"/>
<!-- http://t.co/dKP3o1e -->
<meta name="HandheldFriendly" content="True"/>
<meta name="MobileOptimized" content="320"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="canonical" href="http://netwjx.github.com/"/>
<link href="/favicon.png" rel="icon"/>
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css"/>
<script src="/javascripts/modernizr-2.0.js"></script>
<script src="/javascripts/ender.js"></script>
<script src="/javascripts/octopress.js" type="text/javascript"></script>
<link href="/atom.xml" rel="alternate" title="netwjx" type="application/atom+xml"/>
<script src="http://tjs.sjs.sinajs.cn/open/api/js/wb.js" type="text/javascript" charset="utf-8"></script>
</head>
<body >
<header role="banner"><div><hgroup>
<h1><a href="/">netwjx</a></h1>
<h2>混乱与有序</h2>
</hgroup>
</div></header>
<nav role="navigation"><div><ul class="subscription" data-subscription="rss">
<li><a href="/atom.xml" rel="subscribe-rss" title="订阅Feed">Feed</a></li>
</ul>
<form action="http://google.com/search" method="get">
<fieldset role="search">
<input type="hidden" name="q" value="site:netwjx.github.com" />
<input class="search" type="text" name="q" results="0" placeholder="搜索"/>
</fieldset>
</form>
<ul class="main-navigation">
<li><a href="/">首页</a></li>
<li><a href="/blog/categories/">分类</a></li>
<li><a href="/blog/archives">存档</a></li>
</ul>
</div></nav>
<div id="main">
<div id="content">
<div class="blog-index">
<article>
<header>
<h1 class="entry-title"><a href="/blog/2013/01/27/skiing-memo/">滑雪备忘</a></h1>
<p class="meta">
<time datetime="2013-01-27T19:40:00+08:00" pubdate data-updated="true">2013-01-27</time>
| <a href="/blog/2013/01/27/skiing-memo/#comments">评论</a><a href="/blog/2013/01/27/skiing-memo/#disqus_thread" class="comment-count"></a>
</p>
</header>
<div class="entry-content"><p>前阵子去滑雪, 提前在网上找了一些滑雪的注意事项和准备, 但是等自己亲身体验后感觉还缺点, 这里整理了一些注意事项和准备.</p>
<h2>行程</h2>
<p>一般滑雪场都在郊区, 从起床到进入雪场, 一般需要至少3小时, 雪场开始营业的时间是早8点左右, 结束是一般下午4 5点种, 中间可能需要在雪场用餐. 这个时间要计算好, 免得玩的不够尽兴.</p>
<p>滑雪多数时间是在上山, 途径拖牵, 缆车, 传送带(也叫魔毯). 滑下速度很快, 没有太多消耗体力的地方, 一般体能也能持续很长时间, 只要休息好了.</p>
<p>如果赶到人流多的时候, 在进入, 领服装, 雪鞋, 雪板, 换服装也会消耗很多时间.</p>
<h2>吃喝拉撒</h2>
<p>雪场一般都有餐厅, 价格不算很便宜, 不过附近一般也没什么地方有卖吃的, 有条件的话自己带吃喝.</p>
<p>不能吃太饱, 差不多吃吃就行了, 运动前的常识, 吃完不宜立即剧烈运动.</p>
<p>带上一些高能量食品, 如巧克力, 如果饿了可以先垫点.</p>
<p>带上水杯, 雪场有温水, 也可以自己带水. 水喝多了没事, 雪场应该有卫生间, 一般在雪道底部一侧. 刚进雪场的时候可以先踩踩点, 熟悉周边设施.</p>
<h2>穿着</h2>
<h3>贴身衣物</h3>
<p>内衣最好是透湿, 有弹性, 保暖还行的内衣, 滑雪是持续运动中, 只要吃够了, 外套防风 防水, 基本不会有冷的感觉, 滑完之后可以加件保暖夹层. 贴身不要穿纯棉的, 吸汗之后会湿, 容易着凉.</p>
<p>我穿的是 迪卡依Equarea面料的<a href="http://detail.tmall.com/item.htm?id=12651330117">上身</a>和<a href="http://detail.tmall.com/item.htm?id=12652566120">下身</a>, 保暖一般, 滑雪不感觉到冷, 不活动的时候再加件抓绒上衣, 我穿的是 迪卡依Stratermic面料的<a href="http://detail.tmall.com/item.htm?id=7129791687">抓绒衣</a>.</p>
<h3>保暖夹层</h3>
<p>中间夹层一般建议穿背心, 不会影响到手臂的活动, 温度合适的话, 可以不用加背心. 背心一般是填充的羽绒.</p>
<p>也可以是类似冲锋衣内胆哪种抓绒衣物, 保暖程度主要考虑当天的气温如何.</p>
<h3>防风防雨外套</h3>
<p>外套主要是要防风和防水, 能保暖也行, 就可以少穿一件保暖夹层, 如果自己有冲锋衣裤也可以, 手脚和腰是缩口的最好, 防止摔倒之后进雪. <strong>雪场也有滑雪服租用</strong>, 一般团购的票里面就带有滑雪服租用费.</p>
<p>不建议在日常外套外面穿滑雪服, 会十分影响四肢活动, 而且还可能太热.</p>
<p>一般滑雪服都使用尼龙魔术贴固定的, 租用的可能魔术贴老化而贴不牢, 可以考虑带条腰带, 比较宽, 有一些弹性, 对运动影响小最好. 如果有战术腰带也可, 方便下文要说的腰包. 衣服口袋都是拉链, 可以看看口袋是不是完好, 必要的话可以要求调换.</p>
<h3>袜子</h3>
<p>雪靴一般都比较硬, 加上持续的活动, 建议至少穿两双袜子.</p>
<ul>
<li>里面是加厚的线袜, 能防止脚魔伤, 线袜空隙大, 透湿效果也挺好.</li>
<li>外套吸汗的袜子, 比如纯棉的, 还因为租用的鞋子可能有气味.</li>
</ul>
<h3>帽子</h3>
<p>即使在无风的天气, 下滑的速度也会产生挺大的风, <strong>最好能对耳朵保护下</strong>, 还能有一定的保暖, 可以减少大量的热量消耗.</p>
<p>一般如抓绒帽, 线帽都可以, 防风 不吸水的为主.</p>
<p>我的是这个<a href="http://detail.tmall.com/item.htm?id=6948230189">围脖</a>, 将收缩绳拉上就是个帽子了, 有长发的女孩子还可以把长发从缩口中拉出来, 滑行中更有型.</p>
<h3>手套</h3>
<p>不带手套的话, 手会很快冻僵, 摔倒沾到雪, 湿了之后<strong>就更容易冻伤</strong>, 所以最好有手套, 依旧是防水 防风的, 毛线手套空隙太大的不行, 会透风, 下滑时风会进入手套. 手套最好能方便挂到手上或脖子上, 避免丢失. 我的是<a href="http://detail.tmall.com/item.htm?id=13348736509">这个手套</a>.</p>
<h3>滑雪镜</h3>
<p>如果是初级滑道, 当天也没有风的话是没必要考虑眼镜, 后面的中级滑道就需要眼镜了, 主要是挡风, 不然滑下时风太大, 会流眼泪, 影响视野. 滑雪镜和前面几个的不太一样的是, 基本没什么别的场合可以使用(除非在东北, 大风下雪天气), 可以考虑租用滑雪镜. 如果有畏光, 雪盲, 看到大量雪会难受则一定要找个滑雪镜. 不建议传统太阳镜, 摔倒脱落的话有可能伤到眼睛. 滑雪镜不是潜水镜, 周围是海绵垫着的, 不会对眼球产生负压.</p>
<h3>口罩/围巾</h3>
<p>如果受不了迎风直接吸冷风, 则还需要口罩, 或者是围巾, 能对直接刮来的冷风有点削减的就行.</p>
<h3>穿着总结</h3>
<p>总结起来就是:</p>
<ul>
<li>贴身衣物 透湿, 弹性好, 不吸汗的.</li>
<li>夹层根据天气情况穿件保暖的背心, 可以不穿保暖裤.</li>
<li>外穿的都需要防风 防水.
<ul>
<li>外套可以在雪场租用, 自备可以用冲锋衣.</li>
<li>外套颜色不要白色的, 选择其它鲜艳点的颜色, 方便雪地中辨识.</li>
<li>手套和帽子可以防止冻伤, 建议准备上.</li>
</ul>
</li>
<li>透湿的厚袜子.</li>
</ul>
<h3>随身物品</h3>
<p>建议把平时多数随身物品都存上, 免得滑雪中掉落, <strong>可以随身携带的有</strong>:</p>
<ul>
<li>手机(充满电的), 雪场比较大, 方便联系同伴.
<ul>
<li>领到的储物柜钥匙很可能不在一起, 换完服装如果先不和同伴碰头, 进了雪场空间太大就很难找到了, 所以最好大家随身带手机.</li>
</ul>
</li>
<li>滑雪场寄存柜的钥匙, 计费卡, 没这个就回不了家啦.</li>
<li>巧克力(高能量食品, 感觉冷或饿的时候可以先垫点), 不能放太热的地方, 会化掉.</li>
</ul>
<p>水可以放寄存柜, 需要的话回来开柜取出来.</p>
<p>最简单的就是把所有东西都放到滑雪服的拉链口袋, 切记用完后要拉好拉链, 防止掉落.</p>
<p>如果东西多可以考虑用一个贴身的小双肩背包, 防水, 能在腰间绑一圈固定的最好.</p>
<p>如果对滑雪服的拉链口袋不满意, 可以用腰包, 一般军品店哪种战术腰带也行, 可以根据需要挂接腰包模块, 足够放手机和钥匙就行, 腰包一定要可靠, 不能中途物品掉落.</p>
<h2>取雪鞋 雪板 雪杖</h2>
<p>雪板和雪鞋可能会不匹配, 拿到之后建议在原地试试, 是否能卡紧, 卡不紧可以要求调整或者调换. 顺便了解下怎么脱离雪板, 然后在进入雪场.</p>
<p>一般雪板都是可以摔倒自动脱离, 正常的脱离是用雪杖扎到卡住雪鞋后跟哪个机关的小凹坑上, 使劲压, 可能需要双手压, 脚后跟就能起来了. 如果有同伴就让同伴用雪鞋帮踩压哪个机关.</p>
<p>领取这些东西一般会有一个领用凭据之类的, 这个要保存好, 最好随身携带. 雪板和雪杖不要丢失, 会扣钱的. 有些雪杖前面的帽会脱落, 能换个好点的就换吧.</p>
<p>雪场一般有雪板和雪杖的寄存处, 应该是免费的, 需要休息, 去卫生间等可以把雪板和雪杖先寄存. 或者是同伴帮看着.</p>
<h2>用雪杖推行</h2>
<p>不要把雪杖扎到自己的脚前面, 那样十分费劲, 雪杖最多扎到和脚后跟平行, 不要想着能一次把自己推多远, 少量多次就可以了, 后面可以学习脚怎么配合一些滑行的动作, 能省力很多.</p>
<p>不推荐新手只在平地上滑行, 极其消耗体力, 还会玩的很痛苦.</p>
<h2>滑道中滑行</h2>
<p>滑道会有难度标识, 建议新人从练习道和初级道开始, 这两个的坡度很小, 速度会慢一些.</p>
<p>上滑道一般是三种途径:</p>
<ul>
<li>拖牵 拖牵是有一根垂直下来, 能伸缩的金属杆, 末端一个橡胶盘, 双腿夹住金属杆, 不用太紧, 然后橡胶盘会推着屁股前行. 这个是事实上山速度最快的途径, 就是需要滑到有点高的地方才有拖牵, 拖行中因为雪面会有轻微的起伏, 所以会有速度变化, 需要自己控制一点左右防止摔倒. 拖牵可以随时从拖牵道出来滑下.</li>
<li>魔毯 我觉得就是传送带, 比较简单, 可以穿或者不穿雪板, 因为是传送带哪种, 所以速度比拖牵慢.</li>
<li>缆车 缆车应该是很快的, 但是因为太多人都想乘缆车, 所以排队十分长, 如果队伍短可以用缆车.</li>
</ul>
<p>还有雪地摩托, 但是好像这个只能进入专用滑雪道, 它上山是直接在滑雪道上逆行的.</p>
<p>雪场有教练服务, 费用还是很贵的, 建议找同伴中比较熟悉的人学习, 或者是在教练附近蹭学, 不要蹭太久了, 可以远处看着也行.</p>
<p>水平横在雪道下坡就可以停住, 实在停不住可以向左右一侧倒, 但要注意后面有没有跟随的人, 避免被后面的人撞上, 人多的时候就不建议这样做.</p>
<p>雪杖不要脱手, 会造成其它人摔倒.</p>
<h2>本次去的滑雪场软硬件设施</h2>
<p>这次去的是<a href="http://www.yuyangski.com.cn/">平谷渔阳滑雪场</a>.</p>
<ul>
<li>面积很大, 高级滑道没有上去过, 主要是乘缆车人太多了.</li>
<li>雪场随处都能看到有工作人员, 或者雪场的教练, 有什么麻烦可以找他们. 一般有统一独特的服装, 很好认.</li>
<li>大厅和雪场都有卫生间, 雪场的卫生间过去比较方便.</li>
<li>最底部有儿童乐园类似的地方, 会有小孩用的哪种比较安全的滑雪圈, 不过是额外收费的.
<ul>
<li>其它还有拍照, 冰面碰碰车好像.</li>
</ul>
</li>
<li>有餐厅, 如果是自助餐要赶早, 不然就没什么好东西吃了, 可以看看团购卷里面是否包含, 正价是58/每人, 提前问好用餐时间.</li>
<li>有卖小吃的地方, 我没仔细看, 不知道价格, 味道估计不会特别的好.</li>
<li>生态餐厅就是内部有大量的植被, 人工河(好像是不动的, 但是里面有鱼).</li>
<li>雪场有自己的班车, 早上7:30发车,16:00集合,16:30返程, 40/每人, 团购会便宜点.</li>
</ul>
<h3>酒店</h3>
<p>雪场的酒店, 是别墅木屋哪种, 两层, 三室, 全部独立卫生间 淋浴, 如果是很多人会比较划算, 最近房子刚刚装修, 气味比较重.</p>
<p>其它就只能住附近了, 当然最后行程是当天, 不过夜.</p>
<h2>后记</h2>
<ul>
<li>去雪场切记不要落下东西, 我这次去就把东西给忘在雪场了.
<ul>
<li>后来抱着希望给雪场打电话, 想不到他们帮找到了, 过段时间找快递发回来.</li>
</ul>
</li>
</ul>
</div>
<footer>
<a href="/blog/2013/01/27/skiing-memo/#comments">评论</a><a href="/blog/2013/01/27/skiing-memo/#disqus_thread" class="comment-count"></a>
</footer>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/blog/2012/12/05/function-currying-in-javascript-and-scala/">函数的Currying (Javascript 和 Scala)</a></h1>
<p class="meta">
<time datetime="2012-12-05T13:52:00+08:00" pubdate data-updated="true">2012-12-05</time>
| <a href="/blog/2012/12/05/function-currying-in-javascript-and-scala/#comments">评论</a><a href="/blog/2012/12/05/function-currying-in-javascript-and-scala/#disqus_thread" class="comment-count"></a>
</p>
</header>
<div class="entry-content"><p>Currying或者Curry, 中文有翻译成<a href="http://book.51cto.com/art/200806/77578.htm">科里化</a>. 我最早了解它是在一篇讲<a href="http://www.ibm.com/developerworks/cn/java/j-pg08235/">Groovy中函数式编程</a>的文章中, 之后又在<a href="http://www.python.org/">Python</a>中<a href="http://code.activestate.com/recipes/52549/">遇到同样的东西</a>. 最近在看<a href="http://www.scala-lang.org/">Scala</a>的介绍时<a href="http://www.scala-lang.org/node/135">又看到了</a>, 而且发现<a href="http://www.scala-lang.org/">Scala</a>设计的明显更好, 然后就成了这篇文章, 使用Javascript作为主要语言是因为我使用Javascript的时间更长, 并且Javascript这门语言的表达能力<a href="http://www.nafine.com/Work_View.php?id=271">奇强</a>^-^.</p>
<p>我不确定把Currying记作<a href="http://book.51cto.com/art/200806/77578.htm">科里化</a>是否更容易理解, 所以下文还是依旧使用Currying吧.</p>
<p>Currying是<a href="http://www.ibm.com/developerworks/cn/java/j-cb12196/">函数式编程</a>中一种<a href="http://zh.wikipedia.org/wiki/%E9%AB%98%E9%98%B6%E5%87%BD%E6%95%B0">高阶函数</a>的典型应用, 如果非要把它对应到传统OO中的话, 那么它类似<a href="https://www.google.com/search?q=builder+pattern">Builder模式</a>, 一般译作构建器模式 建造者模式.</p>
<p>Builder模式可以简单理解为创建一个复杂的对象需要依赖多个参数, 要提供的参数又依赖于不同的方法, 使用Builder模式让每个方法只关注自己提供的参数, 最终根据全部参数创建出对象来. 对象实例最终是拿来调用的, 可以把这个过程想象成调用一个参数很多的函数.</p>
<p>Javascript中完全可以按照传统OO的方式实现Builder模式, 但使用Currying更轻量级 简单, 考虑下面的代码:</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
</pre></td><td class='code'><pre><code class='js'><span class='line'><span class="kd">function</span> <span class="nx">filter</span><span class="p">(</span><span class="nx">list</span><span class="p">,</span> <span class="nx">func</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'> <span class="kd">var</span> <span class="nx">ret</span> <span class="o">=</span> <span class="p">[];</span>
</span><span class='line'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">list</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'> <span class="kd">var</span> <span class="nx">v</span> <span class="o">=</span> <span class="nx">list</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
</span><span class='line'> <span class="k">if</span> <span class="p">(</span><span class="nx">func</span><span class="p">(</span><span class="nx">v</span><span class="p">))</span> <span class="p">{</span>
</span><span class='line'> <span class="nx">ret</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">v</span><span class="p">);</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'> <span class="p">}</span>
</span><span class='line'> <span class="k">return</span> <span class="nx">ret</span><span class="p">;</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="kd">function</span> <span class="nx">modN</span><span class="p">(</span><span class="nx">n</span><span class="p">,</span> <span class="nx">x</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'> <span class="k">return</span> <span class="nx">x</span> <span class="o">%</span> <span class="nx">n</span> <span class="o">===</span> <span class="mi">0</span><span class="p">;</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="kd">var</span> <span class="nx">nums</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">8</span><span class="p">];</span>
</span><span class='line'>
</span><span class='line'><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">filter</span><span class="p">(</span><span class="nx">nums</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'> <span class="k">return</span> <span class="nx">modN</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="nx">x</span><span class="p">);</span>
</span><span class='line'><span class="p">}));</span>
</span><span class='line'>
</span><span class='line'><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">filter</span><span class="p">(</span><span class="nx">nums</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'> <span class="k">return</span> <span class="nx">modN</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="nx">x</span><span class="p">);</span>
</span><span class='line'><span class="p">}));</span>
</span></code></pre></td></tr></table></div></figure>
</div>
<footer>
<a rel="full-article" href="/blog/2012/12/05/function-currying-in-javascript-and-scala/">继续阅读 →</a>
<a href="/blog/2012/12/05/function-currying-in-javascript-and-scala/#comments">评论</a><a href="/blog/2012/12/05/function-currying-in-javascript-and-scala/#disqus_thread" class="comment-count"></a>
</footer>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/blog/2012/11/24/dropbox-stack-overflow-and-ruby-on-rails/">Dropbox, Stack Overflow 和 Ruby on Rails 杂念</a></h1>
<p class="meta">
<time datetime="2012-11-24T21:08:00+08:00" pubdate data-updated="true">2012-11-24</time>
| <a href="/blog/2012/11/24/dropbox-stack-overflow-and-ruby-on-rails/#comments">评论</a><a href="/blog/2012/11/24/dropbox-stack-overflow-and-ruby-on-rails/#disqus_thread" class="comment-count"></a>
</p>
</header>
<div class="entry-content"><p>它们有什么联系? 其实没什么特别的联系, 所以是杂念, 没什么头绪, 就是想到了, 我一个个说来.</p>
<h2>Dropbox的故事</h2>
<p><a href="http://dropbox.com/">Dropbox</a>是很出名的网盘服务, 也可以叫它云端存储服务, 它的客户端能够自动同步多个电脑间的文件夹, 当然这个功能在现在十分常见了, 只是在他出现之前, 多数网盘服务都是以Web形式为主的. 它给免费用户提供2G空间, 通过邀请其它用户可以扩容空间, 基本上后来的网盘都是这种套路. 额外还有根据订购的套餐按月付费.</p>
<p><a href="http://ycombinator.com/">Y Combinator</a>是一家很有意思的风险投资公司, 它只向最早期的创业团队投资. 而<a href="http://dropbox.com/">Dropbox</a>是它最成功的投资之一.</p>
<p><img class="right" src="http://www.ruanyifeng.com/images/hnp_cover_b.jpg" width="318" title="Hackers and Painters" ></p>
<p><a href="http://ycombinator.com/">Y Combinator</a>的创始人是<a href="http://www.paulgraham.com/">Paul Grahm</a>, 被誉为<a href="http://www.programmer.com.cn/11408/">硅谷创业之父</a>, 他曾经从事过程序员的工作. <a href="http://www.ruanyifeng.com/blog/">阮一峰的网络日志</a> <a href="http://www.ruanyifeng.com/blog/2009/12/i_will_translate_paul_graham.html">我要翻译Paul Graham了</a>上面介绍的很不错, 引用首段:</p>
<blockquote><p>下面,我就告诉你,我为什么那么想翻译Paul Graham。</p><p>他1964年出生于英国,在康奈尔大学读完本科,然后在哈佛大学获得计算机科学博士学位。1995年,他创办了Viaweb,帮助个人用户在网上开店,这是世界上第一个互联网应用程序。1998年夏天,Yahoo!公司收购了Viaweb,收购价约为5000万美元。</p><p>此后,他架起了个人网站paulgraham.com,在上面撰写了许许多多关于软件和创业的文章,以深刻的见解和清晰的表达而著称,迅速引起了轰动。2005年,他身体力行,创建了风险投资公司Y Combinator,将自己的理论转化为实践,目前已经资助了80多家创业公司。现在,他是公认的互联网创业权威。</p><footer><strong>阮一峰</strong> <cite><a href='http://www.ruanyifeng.com/blog/2009/12/i_will_translate_paul_graham.html'>我要翻译Paul Graham了</a></cite></footer></blockquote>
</div>
<footer>
<a rel="full-article" href="/blog/2012/11/24/dropbox-stack-overflow-and-ruby-on-rails/">继续阅读 →</a>
<a href="/blog/2012/11/24/dropbox-stack-overflow-and-ruby-on-rails/#comments">评论</a><a href="/blog/2012/11/24/dropbox-stack-overflow-and-ruby-on-rails/#disqus_thread" class="comment-count"></a>
</footer>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/blog/2012/11/04/javascript-async-load/">Javascript异步加载</a></h1>
<p class="meta">
<time datetime="2012-11-04T17:50:00+08:00" pubdate data-updated="true">2012-11-04</time>
| <a href="/blog/2012/11/04/javascript-async-load/#comments">评论</a><a href="/blog/2012/11/04/javascript-async-load/#disqus_thread" class="comment-count"></a>
</p>
</header>
<div class="entry-content"><p>这是8月份写了一份草稿, 但是一直都觉得这个主题组织起来比较纠结, 现在觉得不该再拖了, 先把之前的理解都整理出来吧.</p>
<p>异步加载这个名称不是很贴切, 实际上有三部分, 非阻塞(不暂停页面渲染) 下载 执行. 只是叫异步加载字数少点, 请不要完全从这个字面理解其意义.</p>
<p>主要用于外链的js文件, 会带来下面的好处:</p>
<ul>
<li>页面内容显示更快, 特别对于定义在<code><head></code>和文档开始处的外链js.</li>
<li>使用第三方Javascript时, 如果第三方无法访问, 也不会使页面很长时间是空白.</li>
<li>使用一些手法可以控制页面内容的显示顺序, 比如重要的先显示.</li>
<li>模块化Javascript, 使用<a href="#jsloader">Javascript模块加载器</a>管理大量相互依赖的Javascript.</li>
</ul>
<p>如果仅仅想页面内容显示的更快, 可以简单的把脚本放置在文档结尾, 比如<code></body></code>标签前.</p>
<p>异步加载的js文件有一个限制的:</p>
<ul>
<li>不能使用<code>document.write()</code>, 因为页面已经加载完成, 再调用会覆盖现有页面的内容.</li>
</ul>
<p>下面是异步加载的一些实现方式.</p>
<h2>使用script标签的defer属性</h2>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='html'><span class='line'><span class="nt"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span> <span class="na">defer</span> <span class="na">src=</span><span class="s">"javascript.js"</span><span class="nt">></script></span>
</span></code></pre></td></tr></table></div></figure>
<p>使用了<code>defer</code>属性的<code><script></code>标签下载时不会暂停页面渲染, 当页面解析完后执行, 即常说的<code>DOM Ready</code>之后, <code>window load</code>之前.</p>
<p>如果有多个<code><script defer></code>将会按照DOM中的顺序执行, 多个前后依赖的脚本可以放心使用.</p>
</div>
<footer>
<a rel="full-article" href="/blog/2012/11/04/javascript-async-load/">继续阅读 →</a>
<a href="/blog/2012/11/04/javascript-async-load/#comments">评论</a><a href="/blog/2012/11/04/javascript-async-load/#disqus_thread" class="comment-count"></a>
</footer>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/blog/2012/10/12/buy-notebook-memo/">笔记本购买备忘</a></h1>
<p class="meta">
<time datetime="2012-10-12T21:58:00+08:00" pubdate data-updated="true">2012-10-12</time>
| <a href="/blog/2012/10/12/buy-notebook-memo/#comments">评论</a><a href="/blog/2012/10/12/buy-notebook-memo/#disqus_thread" class="comment-count"></a>
</p>
</header>
<div class="entry-content"><p>很早就想过要对笔记本购买做个备忘, 方便自己也方便别人查阅, 前几天列了个大纲, 现在把具体的填完.</p>
<p>这不是针对特定品牌, 特定型号的备忘, 只是对购买笔记本中注意点的记录, 从软硬件, 到卖场交易等等.</p>
<h2>更新日志</h2>
<p>最近的修改在列表开始</p>
<ol>
<li>2012-12-07 补充一些卖场交易注意事项</li>
<li>2012-12-03 增加颜色, CPU规格链接</li>
<li>2012-10-16 增加验机篇章</li>
</ol>
<h2>外观</h2>
<p>购买时需要首先确定一些重要的外观需求, 比如大小, 接口设计, 键盘.</p>
<h3>屏幕</h3>
<p>屏幕从整体上决定了后面要说的体积和重量, 所以放在最开始.</p>
<p>屏幕尺寸, 14英寸的为主, 15英寸的会有额外的小键盘区域, 13及更低的<strong>可能会没有光驱</strong>.</p>
<p>屏幕长宽比, 之前的都是4:3的, 现在的主要是16:9和16:10, 这个影响最大的是<strong>打算另外买笔记本包的时候</strong>, 一定要确定电脑包的长度是否足够, 避免到时候不能用.</p>
<p>屏幕解析度, 目前主流是1366x768, 13 14 15英寸多数都一样, 未来可能会有解析度更高的屏幕出现.</p>
<p>液晶屏幕面板, 现在主要是TN面板, 主要响应速度快, 也有一些是IPS面板, 显示色彩更多, 更逼真, 就是响应慢点, 可能会有轻微拖尾.</p>
<p>哑光和镜面屏, 主要是在背后有强光的时候, 屏幕是否会反光. 另外, 哑光屏仔细看可能会看到很多彩色的点, 镜面屏一般比较清澈.</p>
</div>
<footer>
<a rel="full-article" href="/blog/2012/10/12/buy-notebook-memo/">继续阅读 →</a>
<a href="/blog/2012/10/12/buy-notebook-memo/#comments">评论</a><a href="/blog/2012/10/12/buy-notebook-memo/#disqus_thread" class="comment-count"></a>
</footer>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/blog/2012/10/01/set-location-is-invalid-in-firefox/">在Firefox下设置location不生效</a></h1>
<p class="meta">
<time datetime="2012-10-01T16:26:00+08:00" pubdate data-updated="true">2012-10-01</time>
| <a href="/blog/2012/10/01/set-location-is-invalid-in-firefox/#comments">评论</a><a href="/blog/2012/10/01/set-location-is-invalid-in-firefox/#disqus_thread" class="comment-count"></a>
</p>
</header>
<div class="entry-content"><p>项目中使用的窗口组件加载内容是使用<code>iframe</code>实现的, 以前遇到的各种问题总是在IE下, 但是之前又发现一个很奇怪的问题, 仅在Firefox下出现.</p>
<p>具体表现为窗口组件关闭时再将相关的父级或<code>iframe</code>重定向到新的地址, 结果在Firefox下没看到重定向, 也没在错误控制台看到任何错误信息.</p>
<p>前提: 以下所有的都不涉及跨域的问题, 只描述Firefox下运行的情况, 目前我的Firefox版本是15.0.1.</p>
<p>关键结构如下, <code>$</code>表示jQuery:</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
</pre></td><td class='code'><pre><code class='html'><span class='line'><span class="nt"><script></span>
</span><span class='line'> <span class="kd">function</span> <span class="nx">dialog</span><span class="p">()</span>
</span><span class='line'> <span class="kd">var</span> <span class="nx">ifrm</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="s1">'<iframe id="Dialog1">'</span><span class="p">).</span><span class="nx">appendTo</span><span class="p">(</span><span class="s1">'body'</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span>
</span><span class='line'> <span class="nx">ifrm</span><span class="p">.</span><span class="nx">openWindow</span> <span class="o">=</span> <span class="nb">window</span><span class="p">;</span>
</span><span class='line'> <span class="c1">// ...</span>
</span><span class='line'>
</span><span class='line'> <span class="kd">function</span> <span class="nx">dialogClose</span><span class="p">(</span><span class="nx">frameElement</span><span class="p">,</span> <span class="nx">url</span><span class="p">)</span>
</span><span class='line'> <span class="nx">$</span><span class="p">(</span><span class="nx">frameElement</span><span class="p">).</span><span class="nx">remove</span><span class="p">();</span>
</span><span class='line'> <span class="p">(</span><span class="nx">frameElement</span><span class="p">.</span><span class="nx">openWindow</span> <span class="o">||</span> <span class="nb">window</span><span class="p">).</span><span class="nx">location</span> <span class="o">=</span> <span class="nx">url</span><span class="p">;</span>
</span><span class='line'><span class="nt"></script></span>
</span><span class='line'>
</span><span class='line'><span class="nt"><iframe</span> <span class="na">id=</span><span class="s">"main"</span><span class="nt">></span>
</span><span class='line'> <span class="nt"><button</span> <span class="na">onclick=</span><span class="s">"parent.dialog()"</span><span class="nt">></span>打开<span class="nt"></button></span>
</span><span class='line'>
</span><span class='line'><span class="c"><!-- 打开窗口时 --></span>
</span><span class='line'><span class="nt"><iframe</span> <span class="na">id=</span><span class="s">"Dialog1"</span><span class="nt">></span>
</span><span class='line'> <span class="nt"><button</span> <span class="na">onclick=</span><span class="s">"parent.dialogClose(frameElement, 'other.html')"</span><span class="nt">></span>关闭并重定向 #main 的地址<span class="nt"></button></span>
</span></code></pre></td></tr></table></div></figure>
<p>一些需要说明的实际情况</p>
<ul>
<li>窗口是指顶级页面的<code>window</code>和<code>iframe</code>中的<code>window</code>. 窗口下是指<code>window.document</code>和下面的所有DOM元素.</li>
<li>在<code>#main</code>中<code>parent.dialog()</code>实际是自动探测或指定在哪个父级打开窗口.
<ul>
<li>在<code>Dialog1</code>中<code>parent.dialogClose</code>实际是哪个窗口打开就重定向那个窗口, 或者指定重定向哪个窗口.</li>
</ul>
</li>
<li><code><iframe id="Dialog1"></code> 是按照实际打开的情况自动分配的id, 这里使用固定的id方便说明.</li>
</ul>
<p>上述代码运行后的结果没有产生重定向, 加了<code>try catch</code>后:</p>
<pre><code>An error occurred throwing an exception
</code></pre>
<p>出错行在 <code>(frameElement.openWindow || window).location = url;</code>.</p>
</div>
<footer>
<a rel="full-article" href="/blog/2012/10/01/set-location-is-invalid-in-firefox/">继续阅读 →</a>
<a href="/blog/2012/10/01/set-location-is-invalid-in-firefox/#comments">评论</a><a href="/blog/2012/10/01/set-location-is-invalid-in-firefox/#disqus_thread" class="comment-count"></a>
</footer>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/blog/2012/09/02/auto-run-and-powerdown/">自动运行和关机批处理</a></h1>
<p class="meta">
<time datetime="2012-09-02T13:43:00+08:00" pubdate data-updated="true">2012-09-02</time>
| <a href="/blog/2012/09/02/auto-run-and-powerdown/#comments">评论</a><a href="/blog/2012/09/02/auto-run-and-powerdown/#disqus_thread" class="comment-count"></a>
</p>
</header>
<div class="entry-content"><p>之前在使用下载软件的完成后自动关机时, 关机失败, 还有导致无法启动, 可能是第三方软件在关机时的实现不够可靠吧. 也懒得找网上专门的自动关机软件, 就写了个自动关机的批处理, 也顺带实现自动运行程序的功能.</p>
<p>使用方式:</p>
<ul>
<li>复制下来用记事本保存为bat文件, 可以放桌面.</li>
<li><p>自动关机</p>
<p>双点批处理, 按照提示输入要等待的分钟数, 可以输入<code>3*60+15</code>这样的数学表达式, 只能是整数, 确定后就会在指定时间之后关机.</p></li>
<li><p>自动运行程序</p>
<p>将打算自动运行的程序或快捷方式拖到这个批处理文件上, 然后会出现和自动关机相似的提示, 一样的输入, 确定后不要关闭, 时间到之后会自动运行这个程序并关闭自身.</p>
<p>命令行下也可以, 第一个参数是要运行的程序, 后续的是要运行程序的参数. 然后按照提示信息来, 和上面的一样.</p></li>
</ul>
</div>
<footer>
<a rel="full-article" href="/blog/2012/09/02/auto-run-and-powerdown/">继续阅读 →</a>
<a href="/blog/2012/09/02/auto-run-and-powerdown/#comments">评论</a><a href="/blog/2012/09/02/auto-run-and-powerdown/#disqus_thread" class="comment-count"></a>
</footer>
</article>
<div class="pagination">
<a class="prev" href="/blog/page/2/">← 上一页</a>
<a href="/blog/archives">存档</a>
</div>
</div>
<aside class="sidebar">
<section>
<ul id="tips">
<li>IE6可能不能正常访问, Octopress默认模版是这样的, 还使用了HTML5, Responsive, 懒得改了.</li>
<li>Firefox和Chrome有更好的浏览效果.</li>
<li>Google Reader的Feeds Bundle还没修改成异步的, 可能会有点慢. Disqus没有找到异步调用的方式.</li>
</ul>
<div><wb:follow-button uid="1483229140" type="red_1" width="67" height="24"></wb:follow-button></div>
</section>
<section>
<h1>近期日志</h1>
<ul id="recent_posts">
<li class="post">
<a href="/blog/2013/01/27/skiing-memo/">滑雪备忘</a>
</li>
<li class="post">
<a href="/blog/2012/12/05/function-currying-in-javascript-and-scala/">函数的Currying (Javascript 和 Scala)</a>
</li>
<li class="post">
<a href="/blog/2012/11/24/dropbox-stack-overflow-and-ruby-on-rails/">Dropbox, Stack Overflow 和 Ruby on Rails 杂念</a>
</li>
<li class="post">
<a href="/blog/2012/11/04/javascript-async-load/">Javascript异步加载</a>
</li>
<li class="post">
<a href="/blog/2012/10/12/buy-notebook-memo/">笔记本购买备忘</a>
</li>
<li class="post">
<a href="/blog/2012/10/01/set-location-is-invalid-in-firefox/">在Firefox下设置location不生效</a>
</li>
<li class="post">
<a href="/blog/2012/09/02/auto-run-and-powerdown/">自动运行和关机批处理</a>
</li>
</ul>
</section>
<section>
<h1 class="dsq-widget-title">近期评论</h1>
<div id="recentcomments" class="dsq-widget">
<script type="text/javascript" src="http://netwjxblog.disqus.com/recent_comments_widget.js?num_items=7&hide_avatars=1&avatar_size=32&excerpt_length=100"></script>
</div>
<a href="http://disqus.com/">Powered by Disqus</a>
</section>
<section>
<h1>我的书签</h1>
<div id="delicious"></div>
<script type="text/javascript">
$(window).on('load',function(){
$(document.createElement('script')).attr('type','text/javascript').attr('src','http://feeds.delicious.com/v2/json/netwjx?count=7&sort=date&callback=renderDeliciousLinks').appendTo('head');
});
</script>
<a href="http://d.me/netwjx">我的书签 »</a>
</section>
<section>
<div id="license"><a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/cn/"><img alt="知识共享许可协议" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/2.5/cn/88x31.png" /></a><br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/cn/">知识共享署名-相同方式共享 2.5</a></div>
</section><section>
<h1>阅读</h1>
<div>
<script type="text/javascript" src="https://www.google.com/reader/ui/publisher-zh_CN.js"></script>
<script type="text/javascript" src="https://www.google.com/reader/public/javascript-sub/user%2F02592277505994759921%2Fbundle%2FWeb%E5%89%8D%E7%AB%AF?callback=GRC_p(%7Bc%3A%22blue%22%2Ct%3A%22My%20%5C%22Web%5Cu524D%5Cu7AEF%5C%22%20Bundle%22%2Cb%3A%22true%22%7D)%3Bnew%20GRC"></script>
<script type="text/javascript" src="https://www.google.com/reader/public/javascript-sub/user%2F02592277505994759921%2Fbundle%2F%E6%9C%89%E8%B6%A3%E7%9A%84?callback=GRC_p(%7Bc%3A%22blue%22%2Ct%3A%22My%20%5C%22%5Cu6709%5Cu8DA3%5Cu7684%5C%22%20Bundle%22%2Cb%3A%22true%22%7D)%3Bnew%20GRC"></script>
<div><a href="http://getpocket.com/" title="美妙的移动离线阅读 Pocket" alt="美妙的移动离线阅读 Pocket"><img src="http://getpocket.com/i/v3/pocket_logo.png" alt="Pocket" border="0"/></a></div>
</div>
</section>
</aside>
</div>
</div>
<footer role="contentinfo"><p>
Copyright © 2013 - netwjx -
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
</p>
</footer>
<a href="https://github.com/netwjx"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
<script type="text/javascript">
var disqus_shortname = 'netwjxblog';
var disqus_script = 'count.js';
(function () {
var s = document.createElement('script');
s.async = true;
s.type = 'text/javascript';
s.src = 'http://' + disqus_shortname + '.disqus.com/' + disqus_script;
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(s);
}());
</script>
</body>
</html>