About neohope

一直在努力,还没想过要放弃...

第一次拆iPhone4(下)

已经十二点了,但液晶还有问题,wifi还是连不上,吐血
液晶我能忍,wifi我可忍不了

来,第二遍~~
整个卸iphone的流程是一样的,但轻车熟路,直到开始卸屏蔽罩
本来想和第一次一样,但是这一次不小心把螺丝座也搞下来了,汗啊~~
乔帮主保佑啊~~

最后做了一下处理
1、卸下液晶后,擦了下,心里安慰而已,我不认为有用
2、发现触摸总线上的绝缘胶有些问题了,我就用了一块双面胶的贴纸挡了下
3、发现贴片下的尾插排总线绝缘胶有问题了,我就用了总线的包装纸挡了一下(DIY了一个类型形状的)
4、擦干净了贴片

第一遍用了整整一个下午+半个晚上,第二遍用了一个小时。

开机。

wifi有信号了,YES。
但液晶还是那样,没办法,忍了吧。
说实话,我不知道液晶是什么问题,但原装屏不想换,而且不是很影响使用。

有膜送,那就换个膜吧。
贴膜手艺依然很差啊,前面的直接贴废了,后面的有三个气泡。
不要前面的贴膜,反正也用了快三年了~~
:)

用了两天,还不错。
但有两个担心:
1、绝对不防水了
2、加了两篇贴纸,怕夏天怕散热不好,直接废了
到时候再说吧,唉~~

总结一下:
1、工具要齐全,送的工具还可以,但不是很全
2、新手不要弄新机器,容易修成大毛病
3、开液晶屏,要用电吹风,预热一下才好
4、多看几个视频或教程,有时候一个教程某些步骤说的不是很清楚,另外的教程可能就说的好很多

话说回来,iphone的集成程度,真的很不错,厉害。

第一次拆iPhone4(上)

我可怜的iPhone4,今年被摔了n回,先是震动键挂了,然后最近音量键彻底失灵,而home建也是难用的要死,整个手机,只有电源开关一个按键可以用了。

实在看不下去了,就自己买了两条排线进行更换:
1、home键排线
2、音量+震动排线
还有工具送^o^
周五下单,周六上午就到了,还是很快的吗。

吃了午饭,开工。
1、将后盖打开
2、取下电池
3、取下sim卡
可我没有工具啊,只好买了一盒针,好不容易搞开了~~
4、取下贴片,卸下尾排线,取下隐藏螺丝一颗
5、卸下蓝牙接头
6、取下屏蔽罩
最短的一颗螺丝拧不下来,只好用一个撬棒微微抬起,同时拧,终于搞定
7、取下后置摄像头
8、取下保修螺丝一颗
9、取下5根排线
10、取下主板
好难取啊,最后弄了好久才搞定(最后发现少取下了一颗十字支架,一头汗)
11、取下振铃总成
12、取下马达
13、取下固定螺丝10颗
14、取下液晶屏
没有吹风机伤不起啊,弄了好久
15、换home总线
妈的,工具里没镊子,找了个五金店,一口气买了三个
16、换震动+音量总线
妈的,没有操作说明了,优库上找了一个
真正悲剧开始了,取下来的时候,由于线路老化,总线直接断掉了
然后把耳机插孔先上好,然后震动键,弄了半个多小时,搞不定,太挫了
然后尝试音量键,弄了半个小时,搞定,累死了
休息下~~
然后再搞震动键,发现有个贴片掉了,想死的心都有啊~~
四个零件要从下向上拍好顺序,吐血啊~~
中途想到买胶水粘住,但考虑到502只有一次机会,买了固体胶,fuck,屁用没有~~
吃晚饭~~,休息下~~
休息后想,是不是我上的顺序不对啊~~
把耳机插孔卸下,然后上震动键,感觉简单多了,要是贴片不掉的话,也就是10分钟的事情~~
但,我仍然搞了半个小时,终于搞定~~,心想可以睡觉了啊
17、上液晶屏
18、上马达
19、上振铃总成
20、上主板,费了好大力气(没卸掉那颗支架螺丝,一头的汗啊~~,我是怎么上上去的啊)
21、上总线,妈的,有个总线看起来好短,心想是不是压倒液晶下面了~~,开始祈祷液晶不要挂了啊
22、马上卸下振铃总成,卸下马达,卸下液晶,发下触摸排线被压在了液晶屏下面~~,吐血
23、上液晶,上固定螺丝10颗
24、上马达
25、上振铃总成
26、上主板,这时候才发现那颗固定螺丝的问题,我人才啊
27、上总线,上保修螺丝
28、上后置摄像头
29、上屏蔽罩
30、上隐藏螺丝,上wifi天线
31、上尾插排线
32、上铁片
33、上sim卡
34、上电源
35、上后盖

开机~~
电话功能正常
wifi一直在搜索
液晶上留下了一块彩斑,还好不大

SQL Server:提供的值不是数据类型datetime的有效实例

今天遇到了一个很郁闷的问题,在向SQL Server做Insert时,有几条数据总是提示:
提供的值不是数据类型 datetime 的有效实例

然后根据
参数 131 (“”)
还以为提供的数据为空,查了半天。

最后发现,是提交的日期范围,超出了SQL Server的Datetime的范围。
这提示能再坑一些吗。。。

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 131 (""): 提供的值不是数据类型 datetime 的有效实例。请检查源数据中的无效值。例如,小数位数大于精度的数值类型的数据即为无效值。
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(Unknown Source)
	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(Unknown Source)
	... 45 more

查询视图时不使用索引

今天发生了一件很诡异的事情,平台网关有一张对外提供的视图,用某字段进行查询时,效率奇低无比。

--view
select * from user1.view1 v1 where v1.mark='mark001';
--table
select * from user1.table1 t1 where t1.mark='mark001';

分析视图对应的表信息后发现,虽然对mark字段建立了索引,但查询语句中使用的mark字段值“mark001”,
所占比例竟然已经达到40%,应该是历史数据导致的。

然后将历史数据处理后,重建mark字段索引,诡异的事情发生了:
即使mark字段值“mark001”的比例小于0.1%,查询依然不走索引。

重建索引无效,就差重新建表了,压力山大啊。

最后,休息了一下,抱着试试看的态度,重新分析了表table1:

analyze table user1.table1 compute statistics for table for all indexes for all indexed columns;

查询终于走索引了,速度立刻上去了。

这才记起来,前几天,按某人的建议,把oracle的统计信息关掉了。。。
自己挖坑把自己埋了。。。
四个小时啊。。。
我的考评还没来得及写,还有十几封邮件要写,悲剧啊~~
我恨某潘~~

.Net4的WinForm程序使用.Net2控件

在.Net4的WinForm程序中,混用.Net2控件会报下面的问题

Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.

解决方法为在App.config文件中,增加以下配置

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

八后问题Ruby02

Queen.rb

class Queen
  
  def initialize()
    @v=0
  end
  
  def canSetQueen(lst,s,x,y)
      lstNo = Array.new()
    
      for i in 0..s-1 do
        p = Pt.new(x,i)
        lstNo.push(p)
      end
      
      for j in 0..s-1 do
        p = Pt.new(j,y)
        lstNo.push(p)
      end 
      
      x0=x
      y0=y
      while x0<s and y0<s
        p=Pt.new(x0,y0)
        lstNo.push(p)
        x0=x0+1
        y0=y0+1
      end
      
      x0=x
      y0=y
      while x0>=0 and y0>=0
        p=Pt.new(x0,y0)
        lstNo.push(p)
        x0=x0-1
        y0=y0-1
      end
      
      x0=x
      y0=y
      while x0>=0 and y0<s
        p=Pt.new(x0,y0)
        lstNo.push(p)
        x0=x0-1
        y0=y0+1
      end
      
      x0=x
      y0=y
      while x0<s and y0>=0
        p=Pt.new(x0,y0)
        lstNo.push(p)
        x0=x0+1
        y0=y0-1
      end
      
      while(lstNo.length>0)
        p=lstNo.pop
        if(p.y==lst[p.x])
          return false
        end
      end
      
      return true
  end
    
  def findQueen(lst,s,x) 
      
      if(x>=s)
        @v=@v+1
        puts("]>>solution No."+@v.to_s)
        pp lst
        return
      end
      
      for y in 0..s-1 do
        if(canSetQueen(lst,s,x,y))
          lst.push(y)   
          findQueen(lst,s,x+1)
          lst.pop
        end
      end
       
    end
end

class Pt
  attr_accessor:x
  attr_accessor:y
  def initialize(x,y)
      @x=x
      @y=y
  end
end

test.rb

require "pp"
require "./Queen.rb"

len = 8
lst = Array.new()

q=Queen1.new
q.findQueen(lst,len,0)

puts("end")

八后问题Ruby01

Queen.rb

class Queen
  
  def initialize()
    @v=0
  end
  
  def arrCopy2(arr)
    arr0=Array.new(arr.length)
    for i in 0..arr.length-1 do
      arr0[i]=Array.new(arr[i])
    end
    
    return arr0
  end
  
  def addQueen(arr,x,y)
    setQueen(arr,x,y,1)
  end
  
  def setQueen(arr,x,y,n)
    for i in 0..arr.length-1 do
      arr[x][i]=n
    end
    
    for j in 0..arr[x].length-1 do
      arr[j][y]=n
    end 
    
    x0=x
    y0=y
    while x0<arr.length and y0<arr&#91;x0&#93;.length
      arr&#91;x0&#93;&#91;y0&#93;=n
      x0=x0+1
      y0=y0+1
    end
    
    x0=x
    y0=y
    while x0>=0 and y0>=0
      arr[x0][y0]=n
      x0=x0-1
      y0=y0-1
    end
    
    x0=x
    y0=y
    while x0>=0 and y0<arr&#91;x0&#93;.length
      arr&#91;x0&#93;&#91;y0&#93;=n
      x0=x0-1
      y0=y0+1
    end
    
    x0=x
    y0=y
    while x0<arr.length and y0>=0
      arr[x0][y0]=n
      x0=x0+1
      y0=y0-1
    end
    
    return arr
  end
  
  def findQueen(arr,lst,x) 
    
    if(x>=arr.length)
      @v=@v+1
      puts("]>>solution No."+@v.to_s)
      pp lst
      return
    end
    
    for y in 0..arr[x].length-1 do
      if(arr[x][y]==0)
        lst.push(y)
        arr0=arrCopy2(arr)
        addQueen(arr,x,y)   
        findQueen(arr,lst,x+1)
        arr=arr0
        lst.pop
      end
    end
     
  end
  
end

test.rb

require "pp"
require "./Queen.rb"

len = 8
arr=Array.new(len){Array.new(len, 0)}
#fuck
#arr = Array.new(len, Array.new(len,0))

lst = Array.new()

q=Queen.new
q.findQueen(arr,lst,0)

puts("end")

JAVA常用缩写

今天整理的一份文档,希望对大家有所帮助

AAA: Authentication, Authorization, Accounting

AWT: Abstract Window Toolkit (AWT VS. Swing VS. SWT)

AOP: ASPect Oriented Programming

BMP: Bean-Managed Persistent

CMP: Container-Managed Persistent

CORBA: Common Object Request Broker Architecture

DI: Dependency Injection

DTD: Document Type Definition

EJB: Enterprise Java Beans(Session Beans, Entity Beans, Message-driven Beans)

IDL: Interface Definition Language

IIOP: Internet Inter-ORB Protocol

IOC: Inversion Of Control

I18N: InternationalizationN

L10N: LocalizatioN

J2EE: Java2 Enterprise Edition(EJB, JTA, JDBC, JCA, JMX, JNDI, JMS, JavaMail, Servlet, JSP)

J2ME: Java2 Micro Edition

J2SE: Java2 Standard Edition

JAF: Java Action FrameWork

JCA: Java Cryptography Architecture

JCP: Java Community Process

JDBC: Java Data Base Connectivity

JDK: Java Development Kit

JDO: Java Data Object

JFC: Java Foundation Classes

JMS: Java Message Service

JNDI: Java Naming And Directory Interface

JNI: Java Native Interface

JPA: Java Persistence API

JRE: Java Runtime Environment

JSDK: Java Software Development Kit

JSF: Java Server Faces

JSP: Java Server Pages

JTA: Java Transaction API

JTS: Java Transaction Service

JVM: Java Virtual Machine(JRE VS. JNode VS. SableVM)

MVC: Model, View, Controller

OMG: Object Menagement Group

OCP: Open Closed Principle (Software entities should be open for extension, but closed for modification.)

OR Mapping: Object Relation Mapping

PI: Processing Instruction

PO: Persisent Object

POJO: Plain Ordinary Java Object

RADIUS: Remote Authentication Dial In User Service

RMI: Remote Method Invocation

RTTI: RunTime Type Identification

SOA: Service-Oriented Architecture

SPI: Service Provider Interface

WFC: Windows Foundation Classes for Java

WORA: Write Once, Run Anywhere

Win2008下调试Service程序

Win2008下调试Service程序时,发现无法使用DebugBreak(),否则程序直接挂掉,无法进行调试。

有资料说是,修改错误报告的选项就可以修正这个问题了,尝试后发现无效,暂时只能一点儿一点儿调试了。

另外,Win2008上内存检测严格了很多,需要注意。