这年头,不能没网啊

在我苦盼的周末来临之际,各种原因之下,家里的路由器的电源,挂了。
于是,变成只有一条网线能上网且没有路由的苦逼局面。

尼玛,真是不知道,原来这年头,真的不能脱离网络存活了。
想写代码,发现有点超纲的知识要web上找资料;看看电影吧,都是online版;哦还有若干软件在网上等着我搬到碗里来。
这一断网,简直欲哭无泪。
啊啊啊啊啊~啊啊啊啊啊~
我的周末黄金的coding time啊~

给维修人员打电话,好吧,要一天后才来,还说这个电源很好买,让我们自己去买多快。
这一屋子懒得出门的人啊。
于是,无奈之下,把linux的笔记本做了wifi热点,win的台式躺了不能连网,好吧手头只剩下小mac能用了,哎,维修人员你啥时候来啊。
哭……

嗯,今儿母亲节,当麻麻的节日快乐。


实现一个竖向滚轮吧

嗯,其实在qt里有滚轮的控件,叫 ScrollBar ,在 Qt.labs.controls 1.0 包里,好吧,我就是闲的慌,想自己实现一个它的效果。=。=说起来汗颜的是,一开始看 Documentation 的时候,看到这个控件的几个属性,还各种的满不在乎,觉得尼玛这个设计好愚蠢。但当我实现了这个控件时,才发现,尼玛,我自己竟然也把这几个属性留出接口了,这真是,好尴尬啊……打脸啊……


分析下它的功能吧,仔细把玩了下竖向滚轮。

  • 滚轮的中间有一个滑块
  • 滑块占整体滚轮的比例跟文本区的可显示大小/整体文本大小有关
  • 滑块的显示高度跟当前可见文本区域在整个文本区域的位置有关
  • 滑块可以拖动的,拖动的时候会跟随鼠标的拖动方向移动
  • 滑块拖动的时候,它控制的文本也会同方向移动
  • 点击滑块上面的空白,页面会随着向上滚动,直至滑块到达鼠标位置
  • 点击滑块下面的空白,页面会随着向下滚动,直至滑块到达鼠标位置

其实,从描述上可以看到,如果就是简单的拿 Rectangle 堆出一个滚轮的话,它是一个三层结构。

三层结构大概的示意图

一开始我的第一反应是在中间的滑块上单独再有一个 MouseArea ,不过后来仔细琢磨了下发现其实那样设计会造成移动滑块的时候的处理变得更加复杂,其实那样设计除了看着舒心,并没有带来什么好处。所以,权衡之后,还是打算只用一个大 MouseArea 盖在上面,通过对鼠标坐标移动的信号来对不同的事件进行处理。

其实想通的话,整个滚轮实现起来并不难。不过有两个坑的地方,一个是按空白的地方,页面自动跑那里,我是靠了一个定时器来实现的页面滚动,通过定时页面高度自增自减。还一个地方其实就是滚轮移动比例到页面移动比例的换算千万别弄忘了,(。・`ω´・) 我一开始就忘记了,结果整个页面起飞了。


嗯,剩下这个控件很简单了,我依然将控件的逻辑部分和样式进行了分离,分别在 control 和 style 里,同时 control 里为了能够控制页面滚动,所以留了一个 Item 类型的属性,如果没对这个属性进行设置,会发现滚轮没有效果,但是不会报错的!

最终的大概效果。
控件的样子

代码如下:

control文件

//VerticalScrollBar.qml
import QtQuick 2.5
import QtQuick.Controls 1.3
import QtQuick.Controls.Private 1.0

Control {
    id: root
    implicitWidth: 10
    implicitHeight: parent.height

    style: Qt.createComponent("VerticalScrollBarStyle.qml", root)

    property Item handleItem // verticalscrollbar 控制的Flickable类控件,必须要设置哦,不设置滚轮是没有反应的
    property alias size: scrollbtn.height //滚轮的长度 height
    property alias position: scrollbtn.y //滚轮的高度 y

    property int __scrollState: 0 //-1向上滚 0不滚 1向下滚
    property int __scrollStep: 20 //按下空白时候的移动步长
    property double __offset: 0
    property bool __dragScroll: false //是否按下滚轮

    clip: true

    Timer {
        interval: 20
        running: !!handleItem
             &&__scrollState!==0
             && handleItem.contentY>=0
             && handleItem.contentY<=handleItem.contentHeight-handleItem.height
        repeat: true
        onTriggered: {
            if (!!handleItem) {
                handleItem.contentY += __scrollStep*__scrollState
            }
        }
    }

    Loader {
        id: backboard
        property Component __bkract //背景图案
        anchors.fill: parent
        sourceComponent: __style && __style.background ? __style.background : __bkract
    }

    Loader {
        id: scrollbtn
        property Component __scrollbtn //滑轮图案
        width: parent.width
        sourceComponent: __style && __style.scroll ? __style.scroll : __scrollbtn

        onYChanged: {
            if (y<mousearea.mouseY && y>mousearea.mouseY-height) {
                __scrollState = 0
            }
        }
    }

    MouseArea {
        id: mousearea
        anchors.fill: backboard

        property double oldY: -1
        onPressed: {
            if(mouseY<=scrollbtn.y) {//按住滚轮空白区域滚轮往上
                __scrollState = -1

            }else if(mouseY>=scrollbtn.y+scrollbtn.height) {//按住滚轮空白区域滚轮往下
                __scrollState = 1

            }else {
                __scrollState = 0
                __dragScroll = true
                oldY = mouseY

                __offset = !!handleItem? handleItem.contentY-oldY*handleItem.contentHeight/handleItem.height : 0
            }
        }
        onReleased: {
            __scrollState = 0
            __dragScroll = false
            oldY = -1
        }
        onPositionChanged: {
            if(!!handleItem && pressed && oldY!==-1) {
                var offsetMouseY = mouseY*handleItem.contentHeight/handleItem.height
                handleItem.contentY = __offset+offsetMouseY>=0? (__offset+offsetMouseY<=handleItem.contentHeight-handleItem.height? __offset+offsetMouseY : handleItem.contentHeight-handleItem.height) : 0
            }
        }
    }
}

style文件

//VerticalScrollBarStyle.qml
import QtQuick 2.5
import QtQuick.Controls 1.3
import QtQuick.Controls.Private 1.0

Style {
    id:style

    //背景样式
    property Component background: Rectangle {
        color: "#fcfcfc"
        Rectangle {
            width: 1
            height: control.height
            color: "#cccccc"
        }
    }

    //滚动条滚轮
    property Component scroll: Item {
        Rectangle {
            width: parent.width-4
            height: parent.height-4
            anchors.horizontalCenter: parent.horizontalCenter
            anchors.horizontalCenterOffset: 0.5
            anchors.verticalCenter: parent.verticalCenter
            color: control.__dragScroll? "#777777" : "#bbbbbb"
            radius: width
        }
    }
}

嗯,就是酱紫简单就哦了,具体使用例子,请烦劳移驾github吧~[(๑→ܫ←)github传送门]


但求你也问心无愧

于是,再一次验证了,人果然都是惰性的。
习惯停下了,就这么习惯了。
大约是一个冬季,一字未落笔,好吧。
其实写的过程就是思考的过程,但是果然,我更喜欢思考,想明白了就懒于动笔。
这约莫是上学期间就积累下来的坏习惯了。

这个冬季真的发生了很多事。有的,想想总是很寒心,不过总算是尘埃落地。
……

上一个东家,是一个很小、很小、很小的创业公司。
在这个创业一词莫名火了的年代,我也算是跟了把潮流去感受了下。
嗯,简单形容就是,环境很艰苦,加班很常态……
我是想来吐槽来着。
一直是这样觉得,对于创业公司来说,idea很重要、团队很重要,但是boss最重要,或者说boss的想法、理念、思考最重要。idea不好,嘴来凑、技术来补;团队不好,大浪淘沙、终归是有合适的能留下的;boss没能力,那就真的…………呃,炒boss?洗洗睡吧。
很不幸的,上个老板就是这样的人。

他呀,也许是年龄的关系吧,幼稚、固执、想一出是一出。其实idea构想还不错,也确实是当下比较会流行的玩意,但是当时市面上已有不少同类app了,并且有一家同类刚刚获得比较大的投资。在这种情况下,好吧,我们的app并没有自己的特色,每天boss在公众号上孜孜不倦的卖萌以拉来用户、增加黏度=。=
其实也没啥,要是那么容易还叫创业嘛。
但问题是,他真的是想一出是一出。
一天说,我们做个网站xxx吧;一天说,嗯淘宝店要装修,我们要卖东西;一天说,要再上线个app……
我真的是无语的不得了,也跟他提了很多想法,毫不意外的被无视掉了。
这都不是事啊,最奇葩的是,某天突然说,从今天开始我们996吧,因为别的公司都这样……
还有,2月不是天数少么,他算工资的时候,竟然是按天数的,还刨去了法定节假日,我就去了!

其实,如果在做有意思的事儿,干活我心情好,这些我真的都不在乎。
但是,老板最爱做的事就是给你一活,半小时就问你一次“做完没?”、“还没弄完?”、“你怎么弄的这么慢?”、“这很难么?”。
一次次给人幼小的心灵不要脸的打击,我真的开心不起来啊,“你来干好不好啊,老板”。
嗯,还有就是尼玛我入职的时候问有社保的吧,他说有。
然后,嗯?亲,说好的社保呢?

说到底,不合适就散了吧,大家都轻松,我就是这么想的,于是春光明媚的3月,我就跟他说拜拜了。
我必须承认,当时没忍住,跟他撕逼了一场后,收拾东西,滚犊子了。
走之前,跟管财务的汉纸说,给我结一下工资呗,他说好,但是现在忙,晚点给我,让我先走吧。
我就这么信了,然后走了。
然后,就这么没信了,信了,了……
过程不想细说了,总之就是我每次给财物汉纸打电话他拒接,发微信他不回,各种说我走老板很生气,不让给我发工资;什么公司没钱,发不出工资,要分期……
我也是脾气好、包子呗,每次他说啥,我其实都特别体谅他,完了各种说好之后,我说行,然后他又骗了我。反反复复……
我跟他说,你在这样,我要去找仲裁了。他说,去呗,公司没钱,不给你发也是一样是想拖着你。
……

这事挺打击我的,真的,我没想过会遇见这样的人、这样的公司。我是那种特别看重承诺的人,一诺千金,我不会轻易答应别人,但是一旦答应,累死累活也会去完成。在整个过程中,他们各种答应我,各种我们说好了哦,然后就像耳畔吹过的风。
我也反思过,为何会这么轻易的相信他们的话……约莫是因为,我就是这样的人吧。

终归是有个好结果,在我准备好资料,做好仲裁的准备,最后一次打电话给他,明确的说了,今天解决不了我明天就去仲裁,2月工资数不对您也别发了我直接仲裁去,等等之后,他在拖我2个月后,终于发了。虽然还有被扣的钱,我真的就当买教训了。

好吧,跟上个东家,就是这样,缘已尽了。
……

这是3月到前几天的事啦。
这些天,过的很开心了,跟着有趣的人做有趣的事,不累,很开心。
真要说的什么感触的话,就是深深的感到,果然什么都是相通的,这就是起源罢。
还是,下次再说吧,好久不见~


































- Read more -


I'll be back after the Chinese new year

工作小忙&捣鼓一些没什么大不了的小把戏,so……


莫待白头空悲切

不知道什么时候,就像是恍然一梦,醒来就是如此光阴了。

- 成长 -

大家是否还能记起小时候、尤其是学前发生的事呢?现在让我回想那时候的事,我总会有种“欸,那时的我不是我吧”的感觉,几乎什么也想不起来。唯一记得的是有一个下午,大人们都去上班了,只有我一个在家。突然间,天黑了,哗啦~一道道闪电划过,紧接着,就是哐当一声,狂风暴雨来了。小孩子都是怕打雷闪电的吧,我也不例外,窗外的这一切把我吓的半死,赶紧爬上床,好像在那能得到什么慰藉一般。刚刚躺下,又嘶~一道闪电,我赶紧在床上一动不动的装死,心里还默念着“快过去、快过去”,好像这样就能骗过雷公和雨娘娘。

小时候身体不好,每年冬天都会生病,支气管炎啊咳嗽什么的。有一天,老爸回家带来了一只野鸽子。我已经完全记不起它的样子,只记得是一只很漂亮、很有灵性的鸽子。老爸把他放在笼子里,说是听说野鸽子能补身子,就不那么容易生病了,我死活不愿,就这么养了几天。突然某天我放学回来,鸽子不见了,那天晚上,桌子上多了一小锅鸽子汤。我哭啊哭啊,哭啊哭啊,可于事无补。我还是喝了一碗汤,却一口肉都咽不下口。

后来再大一点,父母工作原因先去帝都了,我跟着爷爷奶奶生活了一年。爷爷家门口有一株葡萄架,但是从来没打理过,夏天的时候,我还尝过结的葡萄,酸酸的,颗粒很小,印象中就好像是现在玫瑰香的大小。小屋旁边种了不少野生植物,有一种会结俗称“地雷"的黑色的籽,还有一种爷爷管他叫“姑娘”的果子,味道很好吃。清早的时候,鸟儿就会飞进小院来,偷吃掉在地上的葡萄啊、别的小果子。那会我经常跟邻家的熊孩子一起在大院里疯跑,去偷窥别人家做饭,去看看别人家的小院子啊什么的。平日里,奶奶会偶尔带着我去超市采买,爷爷带着我去公园里爬树,然后大部分的晚上,我呆在电视前面看西游记,来来回回看了很多回,还是那么的津津有味。记得有一次感冒发烧了,也没吃什么药,就喝了一包“夏桑菊”,然后奶奶抱来好多床厚厚的棉被,盖在我身上,难受的我不得了,翻来覆去的,终于出了一场大汗,那一瞬间,啊~解脱了。

再后来是来北京的火车上了,老爸问我“喜不喜欢听北京人说话”,那时的我操着满口的南方口音回答说“北京人说话太难听了,我要回去跟爷爷奶奶在一起”。火车轰隆轰隆,就这样带着我来到了这里。插班考试上,老妈在外面跟老师说话,我在屋里做卷子。对于成天海玩的我来说,这卷子真是太难了。记得有一道是考四大发明的题,我完全答不上来,正好老妈偷偷甩掉老师转了进来,然后悄悄的告诉了我答案。

- 青春 -

- 明天 -

<br/>
<p style="text-align:right;">15th 2015.11.14-</p>
<p style="text-align:right;">写在2015年的尾巴上</p>



- Read more -


这一片海 是我的星球

最近做了个主题,好吧,就是你现在看到的这个。
拜这个主题所赐,成功转型抽象画风了-。-
还在动工中,还有几个页面没做&适应性没做,所以,如果显示不全的话,请放大浏览器噢~
整个工期预计会持续到年底前结束。
哎,没法,平时没时间摸鱼,下班也没啥气力弄~

也起了个名字,叫做「无垠」。
说起来,主题就是:鱼、我、一片海与星球。
源于某天的一个梦境……

"这一片星球,有我、还有一群鱼,我们是朋友,可他们不是我,可我终究不是鱼……"

兴许是被最近寒冷的天气所影响,这约莫是个悲伤的故事,待主题竣工那天,再把这个故事好好梳理出来~
不过,确实最近也听了太多绞心的曲子了。
嗯,放一张404页面上的插图吧,这就是我想表达的。

lonelyworld.png

最近帝都迎来了第一场雪。
够冷、一点也不浪漫。

我踩在银白的沙堤上,你踏浪而来,水溅了我一身!!!

就是我内心最真实的造影。

做主题的时候,回头翻了翻以前的日记,
时间过的真是太快了,
曾经刻骨铭心的悲伤,现在也不过是,我嘴角微微卷起的苦笑。
回头看看,一年又过去了。


晚霞明似锦

IMG_0162-small.jpg

只是想分享下,今天下午偶然捕获到的美景~
果然站在高处,总是会有想要起飞的冲动
为何没有一双翅膀,带我装b带我飞呀~

嗯,已是周三,想来周五也不远了。
未来的周末,愉快啦。


在停下的地方重新上路

每次更新的时候,都是发现自己已经快有一月余没有更新过了。
嗯,这个毛病还是要改~

好吧,消失这么久,我果断的是去渣电视剧了。
看完了狼牙棒。
一直感觉我应该是属于那种蛮不容易入戏的人。
也在看第一集的时候,就意识到苏先生一定会领便当啊领便当。
但是看到最后苏先生跟琅琊阁主说要出征那儿,背景音乐一起,眼泪哗啦一下子,就泄开来……
好吧,这么多年来,不多的入戏了。
……
结果就是,我花了一周的时间,终于心情平复下来了,哎!
客观的给个评价吧,虽然还是有值得吐槽的地方,但是确实是,不多的良心剧了。

然后就是确实最近工作蛮忙的,上班都找不到摸鱼的时间好么!!!
23333
对了,说到上班,我一定要吐槽,尼玛,那天新来了个ios的开发小哥。
说起他来,我真是,头一次见到,代码洁癖那么严重的人。
自问,我也算是有代码洁癖了。譬如,要求缩进对齐、注释、变量函数等命名好看= =
但跟他一比,我简直是弱爆了!!!

本来的ios小妹水平不好,老大招了他来。
着急项目上线,让他帮着小妹一起解决完了上线。
他吭哧吭哧2天,老大问“怎么样了”
他他,他,他说“无法接手别人的代码、要自己把那项目代码重写”
……
当然,作为现在不做技术的我来说,跟我一毛钱关系都没有^_^
不过但我听到后,那个万马奔腾,我勒个去啊
就差给我个内心切个镜头,我的独白能绕地球两周半……
嗯,两周半!!!

想想还有啥可吐槽的没,
最近帝都好冷啊,
我已经开始穿秋裤+毛衣了。
暖气君快来(招手~)

最后附一个,今天下午跟基友的聊天记录,原谅我们年少轻狂爱装逼
23333,黑历史留底~ (左:基友,右:我)

屏幕快照 2015-10-26 21.57.56.png
屏幕快照 2015-10-26 21.58.12.png
屏幕快照 2015-10-26 21.58.25.png
屏幕快照 2015-10-26 21.58.39.png






























- Read more -


念旧的我们

公司旁边的麦当劳今天开业,放着礼炮、做着活动。
突然发现麦当劳25周年了。
想起小时候的奶昔大哥还有汉堡神偷,门口的麦当劳叔叔,
他们都去哪儿了……

在网上看到这样一段话

后来汉堡神偷、大鸟姐姐和奶昔大哥
都不知道去哪儿了
只剩下麦当劳叔叔一个人坐在门口
画着小丑的妆容 强颜欢笑
再后来门口的麦当劳叔叔
竟然也不见了
……
一晃眼十几年
我最喜欢喝的奶昔没有了
我也再找不见汉堡神偷他们了

麦当劳25周年

时间不经意间就慢慢流淌。
翻一页就是新时代。
从80后、90后、95后、到00后。
于是,蓦然回首,我发现我已然不再年少了……


这家面试,真的很不开心

今儿上午去了家面试ui。
约的是11点,结果等到11:17才有人面我。
11:33面试结束。

我想说点什么。

先说说面试经过吧。
上来我填了份表,感觉跟户口调查啥的精细程度也差不离了。
来了俩头,一个应该是设计的,一个是产品的。
然后设计的美女在看了我的表。
产品男先说“你作品集的有上线的么?”
我解释了下,说“没有”
设计女说“你学计算机的啊”
我“嗯”
设计女“那为啥转行”
我“xxxx”解释完了后。
设计女“你不是学艺术的,那你的艺术修养上肯定更艺术生有差距,xxx,你要的这工资高了”之类的。
然后我解释呗,但是,好吧,我知道肯定还是有差距呗。
设计女“那你banner能画的好么”等等。。
……
有点说不下去了,总之俩面试官在我有没有艺术修养这个问题上开始对我一顿说……
……
最后,产品男给我一个邮箱,让我把作品发过去,让他们看看我有艺术修养。
于是,10分多钟的面试结束了。

真的,这个面试过程的感觉真的很不好,我能理解,对于一个新转行的人都会有质疑。
但是,那个设计女一直带着,那种艺术人士高傲的神情,像俯视我、藐视我的态度问我“你有艺术修养么?”之类的话。然后我解释吧,就会打断我。在整个过程中,我就感觉我好像跟她比就低人一等还是怎么的了,没有体会到基本的尊重。
我准备了很多东西,虽然是ui职位,但是我准备包括他们公司app界面、交互的体验报告,哪些我觉得不合适的地方,还有其间发现的一些bug啥的,竞品分析等等。我觉得,既然我得到了面试的机会,就应该好好准备,在对对方有基本了解的情况下,再去。而去我一直认为ui的设计是带有目的性的,是因为产品的需求才该这样设计,而不是想当然什么的。
然并卵,一点没有展示的机会,有的只有对我的质疑、对我的贬低。
走的时候,我突然觉得很对不起我自己,对不起我昨晚4小时的睡眠时间,对不起来回2小时的人生,甚至连我10块钱的路费也对不起。

人家说,其实应聘的过程就像是谈恋爱,这一场恋爱,我真的很低贱、很低贱……