Press One

https://press.one/p/address/v?s=a7a1bb3ec261cdfa79b42dd6913dc46ec4daf0d8a83ccdd98c989da18e6a602f4cfb34c72d64a8ad988220a5a0c19797db4cc9d03b59521ab6edd335efb781b00&h=886316c032f1585dbc856dad15c66831772d5fbedc4f3f1d3c06f6415c504583&a=7c94f3669c472f7057f10aa21a7159ea89ab4a28&f=P1&v=2

2017年终总结

关于工作

这一年,我完成了从被管理者到管理者的转变。之前是只需要做好自己的工作,现在需要管理整个团队,整个业务,整个部门。从整体的角度,去思考如何更好的发展以及成长。这是一个没有相关经验可以学习借鉴的阶段。带领整个研发团队是一个不小的挑战,只有靠自己慢慢摸索,一边学习,一边实践。不仅要完成内部研发人员的管理,还有对外的沟通,还有业务的正常运行以及个人技术管理的学习提升。如果以10分计,我认为能给到自己的只有7.5分。实际上与自己的理想的阶段,差距较大,有很大的进步空间。下一年的目标,会从下方面进行改进、学习、探索。

  1. 对人员的相关技术培训,关心团队的成长。
  2. 加强大家的沟通以及聚会,多和组员沟通。
  3. 新技术如何快速落地,更好服务业务。
  4. 新人如何快速融入团队。
  5. 如何打造自己的团队文化。

关于技术

这一年,学习了新的前端技术VueJS,完成了VueJS在新业务上落地以及相关实践。但整体过程来看,还有很多不完善的地方,还需要花费更多的时间去调整优化。在业务上也开始涉及到了App客户端的编程开发,开始正式切入服务器端编程的阶段。在App客户端这块,其实可以做优化的比较多。目前我觉得比较紧迫的是,优化h5页面开屏优化方案。这个问题一直并没有达到我们的预期,但一直没有时间去优化。整个前后端的计划,从下面几个方面改进优化。

  1. VueJS技术的培训,后续的维护更新优化。
  2. 整个业务技术栈从PHP5更新到PHP7。
  3. 对现有的项目优化,更好的适用于业务的发展。
  4. 完善前后端技术栈,对新新技术的定位以及改进优化。
  5. 持续完善并优化App后端技术以及促进VueJS的应用。

关于生活

今年刚好完成年初计划的还贷,相对来讲,生活压力也相对来讲小一些。自认为做得不好的地方,应该是家庭关系。实际是个人承担这块做得比较少,简单的来说,基本上,我的老婆承担了大部分家务以及十一的上下学接送,个人生活的照顾。感谢我的老婆,为这家庭付出了很多。这也是我个人欠缺的地方。因此我只有在工作上做得更好来回报家人的付出。世事难两全。想在工作、投资上有所收获的话,就可能需要放弃其他的东西。希望在明年这块有一些改进的机会。

关于投资

真正改变我的一件事是,有同事投资数字货币,获得一笔可观的回报。在认真研究区块链以及数字货币后,在2018年会计划投资一些有价值的数字货币。尽管投资这块,也是刚刚开始摸索学习,但数字货币、区块链在2018年会有一个爆发。后来看到了吴郎发起的不出局就出彩,经过一段时间的思考,重新调整计划目标,那就是实现财富自由。借用笑来的话,实现财富自由是一个没有终点的旅程。实现财富自由后,就再也不用为了生活必需品出售自己的时间,只需要把时间花费在自己的成长上面。这才是我想要过的生活。这也是我一直想要的人生。

关于个人成长

今年我29岁了。常言道,人在三十而立,我是一个平凡的人,但我对很多东西都不甘心。我父母的人生轨迹,在看我来,是辛苦一生到头来得到回报的很少,反而失去了家庭最重要的亲情。父母在外,这么多年,聚少离多,导致沟通起来会比较麻烦。每个人的意见都不统一,相处起来不是很和谐。一个家庭的统一和谐很重要。大家都为了同一个目标努力,这才是家庭的意义。在过去的这一年,大家终于达成了比较和谐一致的目标,这是一个好的开始。明年会不会越来越好呢?

始发于微信公众号:神秘极客

2010年终总结

2010年是对我来说,是很重要的一年,这一年我们刚从学校里出来,发现世界跟我们想的不是一样的,回顾这过去的一年,感受颇多。

刚开始上班的时候,就觉得自己是菜鸟一个,有时候菜的时候自己都觉得不好意思。只好自己开始学习Web开发的必备技能:HTML+DIV+CSS+JAVASCRIPT。学习的过程是艰苦的,每天都会捧着书在公交上看,这也让我学会如何专注在自己的世界。

一年下来看了不少的书:

个人管理:

李笑来老师经典的书:把时间当成朋友

程序员必备生存手册:程序员修炼之道

Web开发专业书籍:

jQuery入门必备: jQuery实战

CSS常用技巧及知识:精通CSS:高级Web标准解决方案(第2版)

PHP专家经验之谈: PHP实战

javscript新手入门:ppk 谈 JavaScript

前端工程师精华: 高性能网站建设指南

javascript 专业开发必备参考:javscript权威指南

努力是有回报的,看了这么多的书,学习jQuery库,javascript优美的闭包,CSS合理的布局,PHP的OOP,有时候觉得多看一些书还是有好处的,总比大学的傻瓜教育强。

2011年又是新年的开始,希望会有好的愿景 :

1.希望早点看完Linux的入门书:鸟哥的Linux私房菜.基础学习篇(第三版)

2.尽快熟悉MYSQL数据库的部分:高性能MySQL(第二版)

3.提高英文阅读:Outliers

4.自己的数据结构都没怎么学好,可能需要补补课.

5.博客自从10月份开始以来,更新的速度实在是很慢,今后需要注意这方面的积累,会好好努力更新blog。

其实把这些做好,我就很满足了,其他做好的就是赚的。按照以前(2009年)写总结的惯例,摘抄一段文字自勉:

通过实现理想让人相信实现理想是可能的

通过改变世界让人相信改变世界是可能的

即使是在中国!

–2010年老罗全国巡演上说的话

数值转换的实现

最近正在做大作业,学习数据结构中,做了一个小程序,实现了10进制与2-16进制的互转,以及2进制与16进制的互转,程序并不是很完善,不能实 现小数的转换,只能实现正整数的转换,还有一些小的bug。程序的实现主要利用顺序栈的特性,先进后出,利用除D取余数的方法来实现。程序是 VC++6.0编译通过的。 完整源文件请下载num-conver.c源代码如下

头文件

/**
*I/O函数
*标准库函数
*字符串函数
*字符操作函数
*非C标准库中的头文件
*内存分配
*数学函数
*/

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "ctype.h"
#include "conio.h"
#include "malloc.h"
#include "math.h"
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define Stack_Size 50

定义顺序栈

/*
*定义顺序栈
*/

typedef struct{
int elem[Stack_Size];
int top;
}SeqStack;
/*
*顺序栈的入栈操作
*/

int Push(SeqStack *S,int x){
if(S->top==Stack_Size-1)
printf("栈已满无法进栈");
S->top++;
S->elem[S->top]=x;
return (TRUE);
}
/*
*顺序栈的出栈操作
*/

int Pop(SeqStack *S,int *x){
int i;
if(S->top==-1){
printf("栈空无法出栈");
return (FALSE);
}else{
*x=S->elem[S->top];//弹出栈顶元素
S->top--;
i=*x;
printf("%d",i);
return (TRUE);
}
}

16进制的转换

oid Pop16(int x){//16进制的出栈操作
char b[17]={"0123456789ABCDEF"};
int c[100],d,i=0,x1;
x1=x;
do{c[i]=x%16;i++;x/=16;}
while(x!=0);
printf("将%d从10进制转换到16进制,结果为:",x1);
for(--i;i>=0;--i){
d=c[i];printf("%c",b[d]);
}
printf("\n");
}
void Pop10_16(int x){//16进制的出栈操作
char b[17]={"0123456789ABCDEF"};
int c[100],d,i=0;
do{c[i]=x%16;i++;x/=16;}
while(x!=0);
for(--i;i>=0;--i){
d=c[i];printf("%c",b[d]);
}
printf("\n");
}

输出提示性语言

void input(){//输出提示性语言
printf("\n\t请在下列功能中选择(1~4):");
printf("\n");
printf("\n\t\t1. 10进制转换");
printf("\n\t\t2. 转换到10进制");
printf("\n\t\t3. 2进制16进制互换");
printf("\n\t\t4. 退出");
printf("\n");
printf("\n\t请选择你要进行的操作:(1~4)\n默认输入的所有数据都是正整

数,均为int类型\n请按提示来输入:"
);
printf("\n");
}

10进制转换

void ten_to_other(){//10进制转其他进制
int z,x,c1,*c2;
SeqStack *ST;//申明一个顺序栈指针
ST=(SeqStack*)malloc(sizeof(SeqStack));
c2=(int*)malloc(sizeof(int));//分配内存空间
ST->top=-1;
input: printf("请输入要转换的正整数:\n");//input跳转语句标记
scanf("%d",&c1);
x=c1;
if(c1<0){
printf("                        您输入的不是正整数,请重新

输入!\n"
);goto input;
}
input1: printf("请输入要转换为几进制(请输入2-16之间的数):\n");
scanf("%d",&z);
if(z<=1){
printf("                         您输入的不是2-16之间的数,请重新输入!

\n"
);goto input1;
}
if(z>=2&&z<=15){
while(c1){
Push(ST,c1%z);c1/=z;
}//调用顺序栈的入栈操作函数
printf("将%d从10进制转换到%d进制,结果为:",x,z);
do{Pop(ST,c2);}//调用顺序栈的出栈操作函数
while(ST->top!=-1);
printf("\n");
}
else if(z==16){
Pop16(c1);//调用顺序栈的出栈操作函数
}
else{
printf("本程序暂不支持其他的进制转换\n                              请

重新输入\n\n"
);
}
}

16进制转换10进制

void sixteen_to_ten(char s[]){//数组s[]里面存放键盘输入的16进制数,16进制

10进制
int n=0,i;
char x[Stack_Size];
strcpy(x,s);
for(i=0;s[i]!='\0';i++){
if(s[i]>='0'&&s[i]<='9')
n=n*16+s[i]-'0';
if(s[i]>='a'&&s[i]<='f')
n=n*16+s[i]-'a'+10;
if(s[i]>='A'&&s[i]<='F')
n=n*16+s[i]-'A'+10;
}
printf("将%s从16进制转换到10进制,结果为:%d\n",x,n);
}
sixteen_to_ten_1(char s[]){//16进制转10进制
int n=0,i;
char x[Stack_Size];
strcpy(x,s);
for(i=0;s[i]!='\0';i++){
if(s[i]>='0'&&s[i]<='9')
n=n*16+s[i]-'0';
if(s[i]>='a'&&s[i]<='f')
n=n*16+s[i]-'a'+10;
if(s[i]>='A'&&s[i]<='F')
n=n*16+s[i]-'A'+10;
}
return n;
}

其他进制转换为10进制

void other_to_ten(){//其他进制转为10进制
int i=0,j,c1,x=0,z,xl[Stack_Size];
char c[100];
input2: printf("请输入要从几进制(请输入2-16之间的数)转换到10进制:\n");
scanf("%d",&c1);
if(c1<=1||c1>16){
printf("                        您输入的不是2-16之间的数,

请重新输入!\n"
);goto input2;
}
if(c1>=2&&c1<=15){
input3: printf("请输入要转换的正整数:\n");
scanf("%d",&z);
if(z<0){
printf("                         您输入的不是正整

数,请重新输入!\n"
);goto input3;
}
j=z;
while(z){
xl[i]=z%10;
z/=10;
i++;
}
for(i=i-1;i>=0;i--){
x+=xl[i]*(int)pow(c1,i);
}
printf("将%d从%d进制转换到10进制,结果为:%d",j,c1,x);
}else if(c1==16){
input8: printf("请输入要转换的16进制数:\n");
scanf("%s",c);
if(!((c[i]>='A'&&c[i]<='F')||(c[i]>='0'&&c[i]<='9')||(c[i]>='a'&&c[i]

<='f'))){
printf( "                         您输入的不是16进制数,请重新输入

!\n "
);goto input8; }
sixteen_to_ten(c);
}else{
printf("本程序暂不支持其他的进制转换\n");
}
}

2进制与10进制的互转

er_to_ten(int x){//2进制转10进制
int i=0,s=0,xl[Stack_Size];
while(x){
xl[i]=x%10;
x/=10;
i++;
}
for(i=i-1;i>=0;i--){
s+=xl[i]*(int)pow(2,i);
}
return s;
}
void ten_to_er(int x,char y[]){//10进制转2进制
int *c2;
SeqStack *ST;
ST=(SeqStack*)malloc(sizeof(SeqStack));
c2=(int*)malloc(sizeof(int));
ST->top=-1;
while(x){
Push(ST,x%2);x/=2;
}
printf("将%s从16进制转换到2进制,结果为:",y);
do{Pop(ST,c2);}
while(ST->top!=-1);
printf("\n");
}

2进制和16进制的互转

void check(){//2进制与16进制的互转
int x1,x2,s,x,i=0,x3,j;
char y[Stack_Size],xl[Stack_Size];
printf("请输入要从哪里开始转换(输入2或者16):\n");
scanf("%d",&x1);
printf("要转换为的进制(输入2或者16):\n");
scanf("%d",&x2);
if(x1==2&&x2==16){
input6: i=0;
printf("请输入要转换的2进制数:\n");
scanf("%d",&x);
x3=x;
while(x){
xl[i]=x%10;
x/=10;
i++;
}
for(j=i-1;j>=0;j--)
if(!(xl[j]==1&&xl[j]!=0||xl[j]==0&&xl[j]!=1))
{ printf( "                         您输入的不是2进制数,请重

新输入!\n "
);goto input6; }
s=er_to_ten(x3);
printf("将%d从%d进制数转换成%d进制的结果为:",x3,x1,x2);
Pop10_16(s);
}else if(x1==16&&x2==2)
{
input7: printf("请输入要转换的16进制数:\n");
scanf("%s",y);
for(i=0;i<strlen(y);i++)
if(!((y[i]>='A'&&y[i]<='F')||(y[i]>='0'&&y[i]<='9')||(y[i]

>='a'&&y[i]<='f')))
{ printf( "                         您输入不是16进制数,请

重新输入!\n "
);goto input7; }
s=sixteen_to_ten_1(y);
ten_to_er(s,y);
} else{
printf("输入的数据有错误,请检查或者其他不支持的转换\n

请重新输入\n\n"
);
}
}

main函数

void main(){
system("color 2");
int a,b;
printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

★★★★★★★★★★★\n"
);
printf("\n                     ★★★★★欢迎进入数值转换系统★★

★★★\n"
);
printf("\n                          ------第1小组大作业\n");
printf("\n 计算机应用(2)班第1组全体组员:XX XXX XXX XX XX XX XX XX

\n"
);
printf("\n\n★★★★★★★★★★★★★★★★★★★★★★★★★★★

★★★★★★★★★★★★★\n"
);
printf("\n\t\t                  数值转换系统\n");
printf

("========================================================================

========\n"
);
printf("\t    *************************主菜单

**************************\n"
);
loop: input();
while(1){
scanf("%d",&a);
switch(a){
case 1: ten_to_other();input();break;       //10进

制转换到2 8 16 进制
case 2: other_to_ten();input();break;           //任意进制转10

进制
case 3: check();input();break;                  //2和16进制的

互转
case 4: printf("                     谢谢使用!本程序仅供交流学

习,版权所有!\n\n"
);exit(0);break;      //退出
default :printf("

输入错误!\n请按照说明重新输入,输入1~4的数字!\n"
);goto loop;break;
}
}
//不支持小数的转换,应用范围很小,输入很大的数 会出现问题。
}