早起,我表示压力很大,已经晚起逃课一次了,不能再悲剧了。这次转载个技术贴:有很多想做的事做不了的原因其实很简单——晚上下不了线,早上起不来床 。这样的毛病的确是咱迈向四有青年的一大障碍。这篇帖子转自考据癖 ,专门论述了早上起不来的各种原因和很给力的解决方案,对各位早上起不来的同学必然是大有裨益!

=========================割割更健康=========================

起床难,冬天起床更难

人艰难的一生由艰难的一天天构成,艰难的一天从艰难的起床开始。每一天都要和起床作艰难的斗争:

  • 闹钟响后无限次启动Snooze(贪睡/再响/小睡)模式,并告诫自己这是今天早上最后一次这么做了
  • 艰难的起床、穿衣服、洗漱,然后出门…突然闹铃又响了,发现其实自己还在被窝里做梦
  • 终于有一次下定决心起床,关掉闹铃,并暗自表扬自己没按Snooze,然后又悲剧的睡着了

b_large_ajyk_1580000023935c16invisible[2] invisible[3]

  • 早上一定一定要早起,上了三个闹铃保证这一点,结果从凌晨开始每一个小时醒来一次看表
  • 真正到了起床的时间却因为睡眠质量欠佳醒不过来或者头痛欲裂

而比起这些,冬天起床比起其他各个季节都更为痛苦,其原因有二:

  1. 昼短夜长,起床时分已到,外面依然不见黎明,让人产生披星戴月之悲凉感
  2. 被窝内外温差大,身体与衣服温差大,这些差距让人产生强烈的抗拒感

我向来认为天下只有不会治的病,没有治不了的病。每个问题都总会有一个客观存在的解决方式,只是需要有人去发现它们 。虽然咱起床懒,可咱对付起床不懒,与其天天受苦,不如花上点时间来研究一下起床这个问题。

getup

常规起床法

常规起床法是诸多起床法当中最自然、最健康、最广为人知的方法。

比如,自然醒法是最舒服最理想的起床法。其执行要领是:

  • 早睡
  • 提高睡眠质量
  • 固定起床时间

基本上这是靠生物钟来起床的方法,看起来虽然像是三行废话,但无痛起床之道就是如此。如果有条件做到这三点,严肃地讲,推荐采用常规起床法,因为这是最温和的方式,下面再讲到的就可能是略带刺激性的方法了。

此外,如果不相信自己的生物钟,还可以求助于其他生物的生物钟,比如一种古老的起床方法,利用公鸡来叫醒大家起床,典型的应用是闻鸡起舞。最后发展到现在,有了高科技的公鸡,也就是闹钟,成为几乎人人必备的起床工具。

不过公鸡也好,闹钟也罢,这种机制的不确定性在于不能确保人能真正的起床。特别是对于赖床和回笼觉功底比较扎实的人来说基本都无效,因此有必要介入一些非常规的起床法进行辅助起床。

非常规起床法

除了常规疗法,还有各种治疗起床困难症的偏方。

1. 尿钟法

松鼠会在搞一个科学漫画的有奖征文(征图)活动,作品里面有一个画风纯朴的Gee_Kid系列。其中一幅漫画里提到了“尿钟法”(如下图所示),是起床的偏方之一。

_________[1]

这种方法的优势在于其100%纯天然的用料,缺点在于不确定性太高,这和个人的饮食习惯、忍耐能力等各方面都是相关的,可靠性不理想。另外从医学角度看,尿钟的形成对身体也绝非无害。因此不推荐采用尿钟法作为主要的起床方法,实在有必要,可以作为一方面的辅助方法。

2. 心理压力法

心理压力法是我个人一直采用的起床法。简单说,就是给自己的不起床制造一个不太容易解决的后果,这样为了避免悲剧,闹铃响的一瞬间整个人就会蹭的坐起来,精神抖擞。

采用这种方法的要点在于找到一个适合自己的心理压力

自己住的话把闹钟放的远一点,关掉需要大规模移动身体,这样往往能解决关掉闹钟接着睡的问题。但是如果有同宿但是不需要同时起床的人,那这种办法会把所有人都叫醒,显然并不适合,这时候就可以利用这一点来制造心理压力。比如同宿的人睡觉的时候被打 扰就会暴走,那么可以上两个闹钟,一个放在枕边,另一个放在远一点的地方,当第一个闹钟响的时候,由于怕第二个闹钟响起打扰到其他人而产生的压力会让你一 下子爬起来去关掉另一个闹钟。

Tips:

这种方式有一个很大的副作用就是无法安心入睡,提前很久就醒来,看表,然后几乎每一小时都醒 来一次看表。刚开始采用这个方法的时候我几乎天天困扰于这个问题,解决方案如下:1. 睡前检查闹钟,确认的确是没问题,那就充分信任它,放心去睡。如果换了新闹钟,一定要提前测试可用性。2. 换一个不那么沉重的心理压力,减轻睡眠负担,否则夜夜难眠。

巴甫洛夫起床法

pavlov

介绍一下Steve Pavlina在他的博客里写到的一个起床法,Lifehacker里有收录,参考着巴甫洛夫把妹法给这个起床法起了个还算贴切的名字,巴甫洛夫起床法。

看实习医生格蕾的时候很佩服那些医生早上听到闹钟声就能睁眼、关闹铃、起床,巴甫洛夫起床法能让我们也做到这一点

// 尚未验证以下方法的效果

下面简单总结Steve博客的重点:

      • 企图用意志力起床基本是徒劳的——早上没睡醒前总会做些错误的决定
      • 什么自我激励、什么N个闹钟、什么会飞的会跑的会爆炸的懒人闹钟,都是隔靴搔痒
      • 和学习其他技能一样,熟能生巧,训练自己,然后一切交给你的潜意识

      下面这个方法看上去会比较白痴比较弱智,请先做好心理准备:

          • 白天清醒的时候做这个训练
          • 尽最大可能模拟睡觉的环境:光线调暗、换上睡觉的穿着、摘掉眼镜等
          • 闹钟调至几分钟后
          • 躺下,用习惯的睡姿假装自己在睡觉
          • 闹钟响起的时候,用最快的速度关掉闹铃、深呼吸、伸懒腰、坐起来、下床、换衣服
          • 重复
          • 每天1-2组,每组3-10次 // 就像吃药一样,每天1-2次,每次3-10粒
        • 经过了一段时间(视每个人的情况而定)的训练,就会逐渐养成听到闹铃响就马上起床的习惯
        • 时间越久,这个起床模式越根深蒂固
        • 如果听到闹钟响没起床反而会觉得别扭 //就像穿裤子的时候习惯先穿左腿但是先穿了右腿一样
        • 一旦形成了这个条件反射,就不用再进行训练了,每天的起床就是一次训练过程
        • 总结

          • 条件允许的情况下,还是推荐充足的睡眠+自然醒/闹钟辅助的方式起床
          • 条件不允许,临时、快速的解决方案是心理压力法
          • 长期养成,推荐尝试一下巴甫洛夫起床法

          最近不怎么折腾,安心学习,不过期间也接了点小活儿,给老外实现了个小功能,就是用cookie控制的随机文章。具体的说,就是在一段时间内你每次看到的随机文章都是不同的,并且是你没看过的随机文章。原理很简单,就是cookie来记录展示过的文章(记录ID),在显示随机文章时如果获取到了这个cookie里面包含这些已经展示的文章ID,那就不用出现这篇文章。同时给cookie设定一个期限,过期作废。

          这个功能其实就是《记录你看过的文章》的另外一种运用,我觉得最有意思的是怎么控制主循环排除掉已经出现过的文章,方法可以看我的上一篇文章。还有cookie的数组保存和读取,用了serialize 这个php函数,没事google出来的,没学过php的人,见笑了。。。

          这个具体效果还是看demo吧:

          http://winysky.com/demo/?preview_theme=twentyten_mod

          修改了一下wp3.0的默认主题,现在是每次只展示一篇随机文章,点击more会显示下一篇随机文章。但是,你不会再看到相同的文章了,除非你删除了cookie,默认cookie过期时间是1小时。(我觉得这很蛋疼。。。不知道为啥有这奇怪的要求,不过有报酬那就好,哈哈)

          也把代码放出来,很长,不懂的直接表示路过就好了。。。有一些蹩脚的英文注释。

          这是function里面的内容:

          <?php
          if ( ! function_exists( 'winy_ran_cookie' ) ) :
          /**
           * This function control the cookies used in the randompost in index page
           *
           * @by winy 2010.11.19
           */
          function winy_ran_cookie($savecookieid) {
          
          	setcookie("randompostsviewed", '');//delete old ones
          	$savecookiestr=serialize($savecookieid);//use serialize() to store the array
          	setcookie("randompostsviewed",$savecookiestr,time()+3600*1,COOKIEPATH, COOKIE_DOMAIN);//keep for 1 hour by default 
          
          }
          endif;

          这是修改的主循环部分:

          <?php
          if(isset($_COOKIE['randompostsviewed'])){
          $savecookiestr = $_COOKIE['randompostsviewed'];
          $savecookieid = unserialize($savecookiestr);//print_r($savecookieid);//for test
          			}else{
          		$savecookieid = array();
          			}
          	$savecookieid[] = get_option("sticky_posts");
          				?>
           <?php $args = array('post_status' => 'publish','caller_get_posts'=>1,'post__not_in' => $savecookieid, 'orderby' => 'rand', 'posts_per_page' => 1);query_posts($args); ?>
           <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
          
          				<?php if (!in_array($post->ID,$savecookieid,true)) {
          				 $savecookieid[]= $post->ID;}
          				winy_ran_cookie($savecookieid);
          				//echo "<p>REQUEST:$wp_query->request</p>";//test query
          			?>
          
          ...以下省略xhtml部分若干
          
          <?php endwhile; else: ?>
           <p>Sorry, no posts matched your criteria.</p>
           <?php endif; ?>
          <!--Randam part end -->

          用了$savecookieid来保存显示过的文章,cookie是每次都要读取的。存储是把数组序列化再写入。另外,可能由于在后面输出cookie,functions.php头部需要加上ob_start();,不然会出warning。

          至于那个ajax的动态载入,说实话偷懒,直接用了《无限分页效果》,先隐藏上面的文章,再在底部插入新的。效果还行,虽然还是效率不高,凑合用用,问题不大。

          排除wordpress循环中的某个或某几个文章,主要根据

          post__not_in

          这个参数在主循环里排除不想加入的文章ID:例如不想要ID为178的文章:

          <?php
          $args=array(
            'post__not_in'=> array(170),
            'post_type' => 'post',
            'post_status' => 'publish',
            'posts_per_page' => -1,
            'caller_get_posts'=> 1
          );
          $my_query = null;
          $my_query = new WP_Query($args);
          if( $my_query->have_posts() ) {
            echo 'List of Posts';
            while ($my_query->have_posts()) : $my_query->the_post(); ?>
              <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
              <?php
            endwhile;
          }
          wp_reset_query();  // Restore global post data stomped by the_post().
          ?>

          注意点1:参数是post__not_in,这个post后面跟的是两个下划线。。。我这里没注意,想了好久都没办法。。。提醒大家注意。

          注意点2:如果要排除置顶的文章,

          'caller_get_posts'=> 1
          

          这个参数不能少。

          注意点3:也是最重要的,那个post__not_in必须对应一个数组,哪怕你就是排除一篇文章,也得写出array。也可以传递变量,比如'post__not_in' => $id,这个$id是个数组,我就是用这个变量记录排除的文章的。

          顺便给大家一个测试query的方法,就在主循环the_post()后面加上:

          <?php echo "<p>REQUEST:$wp_query->request</p>";?>

          可以输出wordpress当前的query内容:

          例如输出的结果

          REQUEST: SELECT SQL_CALC_FOUND_ROWS wp_16_posts.* FROM wp_16_posts WHERE 1=1 AND wp_16_posts.ID NOT IN (261,209) AND wp_16_posts.ID NOT IN ( SELECT tr.object_id FROM wp_16_term_relationships AS tr INNER JOIN wp_16_term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy = 'category' AND tt.term_id IN ('4', '0', '0') ) AND wp_16_posts.post_type = 'post' AND (wp_16_posts.post_status = 'publish') ORDER BY wp_16_posts.post_date DESC LIMIT 0, 8 

          这样的结果很方便复杂查询的排错。

          034

          11.11前夜打酱油,对影成四人,寂寞的不是1,是中间的小数点。大家都懂的,不过从不过节,不凑和热闹,也不为寂寞而错爱。

          安安静静的爱一个人
          不为世界所知 也不愿世界知晓
          藏在心底
          自己知道 Ta也知道 并且珍惜
          
          是多么幸福的事
          换个背景