2016年12月19日 星期一

[穿搭] Lynn in jp 11月連線小分享




大家安安~~~
天阿換工作之後真的太宅,
完全不想寫blog~
阿不過現在也還是很宅啦!


今天要分享的是我最近的愛褲~~~
穿去辦公室大家都很驚訝,
因為我超討厭穿褲子XD
(寫blog的同時又想再屯一件XD


給大家看一下美美的刷色:

顏色是我以前不敢嘗試的淺色,
材質偏硬~~~
(胖了之後只敢穿硬的牛仔褲XD


接下來是少少的石川照,
我153/46,微重訓,這件拿S肝肝好

感謝好心的同事幫忙拍攝:



壓力測試
那個跳起來也沒問題喔>_^ (拇指


微分享到此結束~~~
希望有稍微幫忙到猶豫要不要買這件的你~




--- 對了1 ---
昨天跟學妹吃二本,
她看到我包包就說~欸~你包包是不是在Lynn買的~
啊哈哈哈我們居然都帶了小羊皮包!
我好喜歡喔真想多買幾個~~~
容量很優秀誒






--- 對了2 ---
昨天跟好朋友去士林逛Rei Shop覺得它2樓好美啊啊啊
很想帶走這件無奈穿起來屁股很多:



好,
我決定要再去下標一件Lynn褲褲惹
大家再見~~~
881~~~






[教學] open failed: EACCES (Permission denied)

今天下午需要寫一個撥放mp4的test app
結果我無論怎麼改程式都無法撥放!
憤怒!


PS:Android Version :6.0.1


error log:
12-19 16:45:51.146: W/System.err(13135): java.io.FileNotFoundException: /storage/emulated/0/emot_peace.mp4: open failed: EACCES (Permission denied)
12-19 16:45:51.147: W/System.err(13135): at libcore.io.IoBridge.open(IoBridge.java:452)
12-19 16:45:51.147: W/System.err(13135): at java.io.FileInputStream.<init>(FileInputStream.java:76)
12-19 16:45:51.147: W/System.err(13135): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1090)
12-19 16:45:51.147: W/System.err(13135): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1041)
...


permission都有開:
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>


存取檔案的方式也都對:
File dir = Environment.getExternalStorageDirectory().getAbsoluteFile();
        File myFile = new File(dir, "xxx.mp4");
        String path= myFile.toString();
        if(myFile.exists())
            Log.d("Mickey", "path = "+path);


所以究竟怎麼回事呢?

其實不是程式本身的問題
1.開啟設定
2.選擇應用程式 -> 點入你的App ->  點入權限





























3. 把"儲存"的權限打開





我的mp4就可以正常撥了~~~
不經一事不長一智QQ






2016年9月19日 星期一

[教學] "gen already exists but is not a source folder" 排除方法


寫程式總會遇到許多紅字,
今天遇到的紅字是
gen already exists but is not a source folder. Convert to a source folder or rename it.



























這太鬧了,
目錄怎麼變成這樣呢?
看了就想按Delete


好啦其實這小事



1. 在project上按右鍵,選"Properties"





























2. 選 "JAVA Build Path" ,用中文說就是爪哇bu佩斯



































3. 選 "Add Folder",用中文來說就是唉得豐德



































4. 把 "gen"勾起來,(還記得提示裡面是跟你說gen有問題嗎?),
用中文來說就是
把針勾起來.































5. 然後按個Apply -> OK,然後就萬事OK惹!































就說很簡單吧!

小抄版本:
1. 在project上按右鍵,選"Properties"
2. 選 "JAVA Build Path"
3. 選 "Add Folder"
4. 把 "gen"勾起來
5. 然後按個Apply -> OK




好!掰掰!








[分享] 香港美心西餅(Maxim’s Cakes) 2016年聯名系列:Stars War月餅禮盒



今年中秋節前
突然很想吃美心月餅~~~

好心的同事聽到我在嚷嚷
就滑~過來說她有多訂星戰版的!
其實我也不知道是什麼呵哈哈哈ㄏ然後月餅就到手惹!

































覺得袋子就好好看喔!!!
眼殘如我
拍照的時候才發現黑色那面有花樣XD
我以為是全黑的呵哈哈





鏘鏘~黑武士鐵盒出現
覺得質感滿分T_____T













































盒蓋內側的設計也別具巧思~
喜歡這種畫風好可愛RRR
































一盒4個
前幾天先吃了白盒的流沙奶黃
是好吃~但我還是比較喜歡半島酒店的~
今天回家再來試試看流心朱古力囉!




打完收工!
謝謝收看:^D








2016年9月12日 星期一

[分享] CUTAWAY台北必排早餐天天吃
















哈哈哈哈大家安安
這篇感覺很像業配文但!真的!不是業配文


上週辦公室的寧寧正妹拿了一張CUTAWAY的傳單給我~
問要不要訂豐盛號~

姐當年在石頭的時候可是每週四都去幫大家買豐盛號呀(撥頭髮
都沒有男生願意買給我吃T_____T
好,
偏題了




抱著半信半疑的心情,
姐就揪了團,
而且還爆滿,
豐盛號上限是15份土司,
湊到就馬上關掉估狗表單RRR


























介面乾淨易懂
適合已經de完100個bug後想輕鬆訂餐的您~~~


































訂完餐介面大概像是這樣,
可以選取餐日期+取餐時間,
蠻方便的~~~




如果想要加點東西,
可以直接寫信到客服信箱:support@cutaway.com.tw
一天之內可以得到回信~




接下來就是提醒大家9/12早上不要吃早餐,
但其實也有點擔心早餐究竟會不會送來...





快轉快轉
時間到了9/12早上9:30!
門鈴響了!
帥哥外送員伴著辣肉蛋吐司的香味出現啦~~~
所以這個網站不是詐騙唷~
吐司也還是熱熱der
這次排隊費用$99
外送費用$60
大家分起來,一個人只需要出11元左右的費用~
好便宜耶~



帥哥外送員說接下來會推出午餐外送的服務
雖然海南雞飯就在公司附近但我們好懶
以後應該都會用訂的
哇哈哈哈哈





接下來來訂陳根找碴好惹!





打完收工,
881~





2016年8月1日 星期一

[體驗] 星豐 煥膚緊緻全效修護生物纖維面膜










































今天體驗的是星豐的面膜~
之前就有試用過他們家的產品,
這幾次用下來都蠻喜歡的!
最近星豐在樂天有開店囉~



登登登登這次試用的是!


























能夠試用到單價這麼高的面膜也太幸運了吧>//////<

































最近都在冷氣房待很久,
覺得皮膚越來越不好了:(
肌膚非常需要修護與保水,
話不多說,立刻來試試~





這是使用前~~~
(我有用Etude House染眉膏XD



















使用中
哈哈哈我看起來有點可怕而且急需補染!
這款生物面膜很超值
個人覺得蠻大片的~~~~沾了好多好多的精華液
面膜不是那種薄薄的容易破掉的紙
但敷久了也不會覺得悶悶der~

而精華液則是有淡淡香氣、
敷起來舒服不刺激唷!





















使用後~
肌膚整個水水亮亮的,
去按壓皮膚感覺整個不一樣!
彈性跟澎度都回來了~





















每次使用星豐的產品都超級滿足~
推薦肌膚需要大保養的女孩們買這款面膜喔!!!



樂天商城:StarFun星豐





2016年7月24日 星期日

[教學][android] OpenGL ES 繪製座標軸






















































大家安安~
今天不專業宅妹來做一個簡單的OpenGL ES教學
(一直懶得研究OpenGL ES 2.0聽說極度麻煩

主題簡單而言
就是繪製出xyz軸,並且能夠旋轉畫面.


layout部分就是~~~~什麼都不用

1
2
3
4
5
6
7
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

</RelativeLayout>


然後你的package裡面會有兩個class,
分別是
MainActivity.java

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
package com.example.gl_lines_test;
/*
 * References:
 * http://www.developer.com/ws/android/programming/opengl-es-for-android-graphics-programming.html
 * 
 */
import android.app.Activity;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.view.MotionEvent;

public class MainActivity extends Activity {
    private GLSurfaceView mView; 
    private MyRenderer mRenderer; 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState); 
          mView = new GLSurfaceView(this); 
          mRenderer = new MyRenderer(this); 
          mView.setRenderer(mRenderer);
          setContentView(mView); 
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
        }

        public boolean onTouchEvent(MotionEvent event) {
          return mRenderer.onTouchEvent(event); 
        }
}

這邊會收TouchEvent並傳給MyRenderer,去處理相關事件.





MyRenderer.java

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
package com.example.gl_lines_test;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import java.nio.ShortBuffer;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

import android.content.Context;
import android.opengl.GLSurfaceView.Renderer;
import android.view.MotionEvent;

public class MyRenderer implements Renderer{
    private Context mContext; 
    private FloatBuffer mVertexBuffer = null; 
    private ShortBuffer mTriangleBorderIndicesBuffer = null; 
    private int mNumOfTriangleBorderIndices = 0;   
  
    public float mAngleX = 0.0f; 
    public float mAngleY = 0.0f; 
    public float mAngleZ = 0.0f; 
    private float mPreviousX; 
    private float mPreviousY; 
    private final float TOUCH_SCALE_FACTOR = 0.6f;
    private final float AXIS_SCALE_FACTOR = 1.5f;
    private final int AXIS_WIDTH = 10;
    private final float POINT_WIDTH = 10f;
  
    public MyRenderer(Context context) { 
      mContext = context; 
    } 

    public void onDrawFrame(GL10 gl) { 
      gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); 
      gl.glMatrixMode(GL10.GL_MODELVIEW); 
      gl.glLoadIdentity();
  
      gl.glTranslatef(0.0f, 0.0f, -3.0f); 
      gl.glRotatef(mAngleX, 1, 0, 0); 
      gl.glRotatef(mAngleY, 0, 1, 0); 
      gl.glRotatef(mAngleZ, 0, 0, 1); 
      gl.glScalef(AXIS_SCALE_FACTOR, AXIS_SCALE_FACTOR, AXIS_SCALE_FACTOR);
  
      gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mVertexBuffer); 
  
      gl.glLineWidth(AXIS_WIDTH);

      // Draw x line
      // Set line color to green     
      gl.glColor4f(0.0f, 1.0f, 0.0f, 1.0f); 
      gl.glDrawArrays(GL10.GL_LINES, 0, 2);
      gl.glDrawArrays(GL10.GL_LINES, 9, 2);
      gl.glDrawArrays(GL10.GL_LINES, 11, 2);

      // Draw y line
      // Set line color to red
      gl.glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
      gl.glDrawArrays(GL10.GL_LINES, 2, 2);
      gl.glDrawArrays(GL10.GL_LINES, 13, 2);
      gl.glDrawArrays(GL10.GL_LINES, 15, 2);

      // Draw z lines
      // Set line color to blue
      gl.glColor4f(0.0f, 0.0f, 1.0f, 1.0f);
      gl.glDrawArrays(GL10.GL_LINES, 4, 2);
      gl.glDrawArrays(GL10.GL_LINES, 17, 2);
      gl.glDrawArrays(GL10.GL_LINES, 19, 2);

      gl.glPointSize(POINT_WIDTH);
      gl.glColor4f(1.0f, 0.0f, 1.0f, 1.0f);
      gl.glDrawArrays(GL10.GL_POINTS, 5, 3);
    } 

    public void onSurfaceCreated(GL10 gl, EGLConfig config) { 
      gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 
      gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST); 
      gl.glEnable(GL10.GL_DEPTH_TEST); 
  
      gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); 
  
      // Get all the buffers ready
      setAllBuffers();
    } 

    public void onSurfaceChanged(GL10 gl, int width, int height) { 
      gl.glViewport(0, 0, width, height); 
      float aspect = (float)width / height; 
      gl.glMatrixMode(GL10.GL_PROJECTION); 
      gl.glLoadIdentity();
      gl.glFrustumf(-aspect, aspect, -1.0f, 1.0f, 1.0f, 10.0f); 
    } 
  
    private void setAllBuffers(){
          // Set vertex buffer
          float vertexlist[] = { 
           -1.0f, 0.0f, 0.0f,   //0 X-axis
            1.0f, 0.0f, 0.0f,   //1 X-axis
            0.0f, 1.0f, 0.0f,   //2 Y-axis
            0.0f,-1.0f, 0.0f,   //3 Y-axis
            0.0f, 0.0f, 1.0f,   //4 Z-axis
            0.0f, 0.0f,-1.0f,   //5 Z-axis
            -0.5f , -0.5f, 0.0f ,   //6 point 1
            0.5f, -0.5f, 0.0f ,    //7 point 2
            0.0f , 0.5f, 0.0f ,      //8 point 3
            0.9f, 0.1f, 0.0f,    //9  X-axis
            1.0f, 0.0f, 0.0f,    //10 X-axis
            0.9f,-0.1f, 0.0f,    //11 X-axis
            1.0f, 0.0f, 0.0f,    //12 X-axis
            -0.1f, 0.9f, 0.0f,   //13 Y-axis
            0.0f, 1.0f, 0.0f,    //14 Y-axis
            0.1f, 0.9f, 0.0f,     //15 Y-axis
            0.0f, 1.0f, 0.0f,    //16 Y-axis
            0.1f, 0.0f, 0.9f,    //17 Z-axis
            0.0f, 0.0f, 1.0f,    //18 Z-axis
            -0.1f,0.0f, 0.9f,    //19 Z-axis
            0.0f, 0.0f, 1.0f,    //20 Z-axis
          };

          ByteBuffer vbb = ByteBuffer.allocateDirect(vertexlist.length * 4); 
          vbb.order(ByteOrder.nativeOrder());
          mVertexBuffer = vbb.asFloatBuffer();
          mVertexBuffer.put(vertexlist); 
          mVertexBuffer.position(0); 
      } 

    public boolean onTouchEvent(MotionEvent e) { 
      float x = e.getX();
      float y = e.getY();
      switch (e.getAction()) { 
       case MotionEvent.ACTION_MOVE: 
          float dx = x - mPreviousX; 
          float dy = y - mPreviousY; 
          mAngleY = (mAngleY + (int)(dx * TOUCH_SCALE_FACTOR) + 360) % 360; 
          mAngleX = (mAngleX + (int)(dy * TOUCH_SCALE_FACTOR) + 360) % 360; 
          break; 
      } 
      mPreviousX = x; 
      mPreviousY = y; 
      return true; 
    } 
}


好,因為我不知道怎麼把程式碼分開貼,
所以大概挑幾個部分講 XD

1. import有兩行被我標了黃色
那是一個容易import錯library的地方,
如果你的code一直有問題,
可能可以看看是不是選錯library.


2. 為了改code跟視覺上調整方便,
建議座標範圍都正規劃,再用factor、scale去做調整.


3.  拿繪製 x軸來講
      // Draw x line
      // Set line color to green     
      gl.glColor4f(0.0f, 1.0f, 0.0f, 1.0f); 
      gl.glDrawArrays(GL10.GL_LINES, 0, 2);
      gl.glDrawArrays(GL10.GL_LINES, 9, 2);
      gl.glDrawArrays(GL10.GL_LINES, 11, 2);

glColor4f是指定顏色,有興趣可以看一下android developers的介紹
gl.glDrawArrays(GL10.GL_LINES, 0, 2);
第一個欄位是指定要畫的型態是什麼,可以指定點啊、線blablabla,
然後 "0, 2"是指:
vertexlist[0]開始數2個element進行繪製,
換言之這邊會繪製vertexlist[0]與vertexlist[1].


規則大概就是這樣~
我想應該還有些其他的繪製方式,
但如果只是要畫三軸的話這樣很快!
下次來寫畫球好了.
掰掰~~~




Reference: OpenGL ES for Android Graphics Programming