大染志

想要玩得很 High 的程序员

笔者在第一次使用eclispe 3.7即indigo这个版本的时候,便发现一个小小的不快:平时在不知道某个方法怎么写的时候会按下Alt +/去获取eclipse给出的提示。但是在3.7这个版本却不好用,得到的是eclipse自动帮你选择一个他认为最合适的方法或者变量等等,帮你补全,而不是原来的显示所有可供选择的,让你来选择。

纠结了很久,期间尝试过使用网上说的修改Content Assist。将之前默认的 .后面加上ABCD…abcd…所有52个字符。并且 把联想的时间从系统默认的200ms提高到50ms。但是经过修改之后,eclipse变得和visual studio 一样,你每输入一个字符,系统就会进行一次提示。不过我发现这种情况下eclipse占用的CPU、内存资源变多了,在我的笔记本有时候还会变得顿卡。这不是最好的办法。

前几天吧,我才发现这个问题的症结所在。原来是eclipse官方的快捷键方式改变了。其实以前Alt+/那个联想一直在,只是在3.7版本里面这个快捷键变成了自动补全(即系统自动选择一个最合适的进行补充)。我们需要做的就是依次打开Windows——preferences——General——Keys。找到Content Assist这一项,这一项系统默认的是Alt+Space。这里我们把它改成Alt+/

好不容易,求我老汉给了1000,还要把自己原来的镜头卖掉,还要一个月省吃俭用500块钱,才可以买下这个镜头。今天从南充过来,下火车就去把镜头买了¥2130.还要吧比我想象中的贵了几十块钱。不过买了镜头,我的兜里就只剩下20多块钱了。哎,所以必须得尽快卖掉那个原有的套头。

猜到了很多人看到我买了镜头就会觉得我很有钱,我真的有钱吗?我难道还不清楚,随便你们怎么说吧!面对流言蜚语我有什么办法。我只能套用那句俗话,走自己的路,让别人说去吧!

还是说说镜头,大光圈确实效果很不错,镜头很厚实,不够就是对焦的时候声音有点大!马达吱吱地想!!

镜头没有防抖功能,希望使用的时候不会出现什么问题吧!下面上图一张

也许是今天上课听到其他人讲人家去腾讯面试怎么怎么样,我心里还是有很大的震动。我不再想学android了,虽然老师叫我负责这一块工作,但是我感觉我在学习的过程中发现android的代码逻辑和我平时接触的java EE的逻辑还是有一些区别。我真的还是喜欢搞我的网站。这些我都比较了解。我也喜欢那些新鲜的事物,因为我喜欢他。虽然就在今天上午之前,我还是很想把Android尽快学好。但是原谅我吧,明年我就去面试了,在这短短一年的时间里面请允许我学习我最喜欢的东西吧,这样我想我胜利的机会才会更大。

况且,我觉得Web App应该是未来的王者,看看Chrome OS,虽然现在Android 还不推荐使用Web App ,但是我大胆预测一下,未来三年内Android 将允许使用Web App.而且Windows 8将来也支持使用javascript +html 5进行程序开发。这些都是学习javascript的好处吧。而且我自己也有javascript 的底子啊,经过暑假一个多月的奋斗,我觉得我的javascript能力提升了不少!

看看Java EE那么多好用的框架,看看 Nosql是多么地吸引人,看看node.js是多么的新潮,还有很多很多好的东西!

从现在开始,我就搞Java EE了!

加油!

在我看来积极性可能比能力更加重要,能力可以努力一点一点提升,但是积极性却是一个人内心意识的反应。我们通常我们感兴趣的事情很有积极性,充满斗志。但是有那么一部分人,他之前的行为让你觉得他对这个事情满怀激情,但是一旦他到达一个一个安定、稳定的环境,即使是他自己感兴趣的事情,他也变得懒惰了。难道他们仅仅是因为虚荣心吗?

最近在帮助老师做一个android项目,由于我是高一级的学生,于是老师叫我负责这个android团队,带领低一级的同学一起参与界面设计、问题讨论、代码编写。但是通过开学这几周下来,我发现这个leader不太好当。我一个人做了几个人的事情。而且我还发现,编程的孩子只喜欢编程,他们不想参与讨论,不想参与草图的制作,心里面想的是,一拿到这个程序立刻开始写代码。界面设计的同学也不愿意开会讨论。设计出来的结果也不能让人满意,没有一点规范可讲。甚至我们最初梦寐以求的进入实验室,他们现在都开始变得不那么渴求,或者说也许只是对实验室名称上的渴求。一旦进入实验室,他们便变得不那么积极了。所有的这一切都让我有一个想法,这些学弟、学妹们怎么了,怎么变得一届不如一届了。

我希望他们对每一项新的任务都已积极的心态来对待,其实每一种技能都是你的本钱,我现在体会得越来越深了。开发一个软件,不仅仅是代码、代码虽然重要,但是如果没有软件工程、没有市场营销、没有良好的用户体验设计,其实这个软件根本不能用,即使你的代码写的再好、即使你的算法再优良。以积极的心态去面对每一项任务,把他们当做一个个新的挑战去完成,虽然过程中你可能会很累、很迷茫、很沮丧,但是坚持到最后,你才发现你学到了很多东西,不仅仅是编写代码。

积极、乐观的态度,还可以给你的老师、你的上司留下好的印象。最重要的是积极这种生活态度很好!说不出的好。

之所以会将之前的顶级域名博客,弃用,而转而使用这个博客,其实我算是不得已而为之。

也许就是舍不得再花钱在这里面吧,想想自己最初的打算,用写博客挣的广告费用,来购买空间,可实际上呢?

哎,还是省省吧。

虽然橡皮泥一直没有把我的空间给我停掉,但是我自己也过意不去啊。毕竟空间他也是花钱买的啊!

综上所述,所以我还是决定了,就用这个新浪的试试看吧!

加油新浪,加油Junv!

争取今天或者明天写一篇新的博客吧!

昨天看了一些网上的tomcat数据库连接池配置的东西,但是一直没配好,主要原因是网上的文章几乎没有争对tomcat 7进行配置的,而且针对SQL SERVER的也不多,今天上午看了官方的文档,花了一上午时间终于配置好了数据库连接池,这里发给大家看看,如果有什么疑问就留言吧。
Read more »

更新:现在提供源码下载了!在文末有地址!



由于115关闭了外部下载,还是麻烦大家留言写下地址吧,我会把包发给大家的。

> >

> 最近看到很多朋友都留言回复很开心,我也很高兴,自己做的这样一个小程序可以帮到你们。上篇文章详细讲了如果实现android端的代码,很多朋友都在问s服务器端servlet源代码,这里就贴出来给大家吧,但是最近很忙,就先暂时不详细解释了。 >

> 这里说明一点,这个程序是使用了Apache Commons 的一个上传文件的开源组件叫做FileUpload,用的包是commons-fileupload-1.2.2.jar。其他的就不多说了,如果你直接粘贴使用下面代码,请你一定要导入这个包。 >

package info.junv;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

@WebServlet("/HandleUpload")
public class HandleUpload extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

    File temp = new File(request.getSession().getServletContext().getRealPath("/")
                + "temp");// 临时目录
        System.out.println("临时目录为=" + temp);
        String loadpath = request.getSession().getServletContext()
                .getRealPath("/")
                + "image"; // 上传文件存放目录

        System.out.println("文件保存目录为=" + loadpath);

        DiskFileItemFactory factory = new DiskFileItemFactory();

        factory.setSizeThreshold(1024*1024);   //设置最大可以存到内存值
        factory.setRepository(temp);  //设置缓存文件夹

        ServletFileUpload fu = new ServletFileUpload(factory);

        fu.setSizeMax(1024 * 1024 * 1024); // 设置允许用户上传文件大小,单位:字节

        System.out.println("开始上传。。。。。。。。。。。。");
        // 开始读取上传信息
        int index = 0;
        List fileItems = null;

        try {
            fileItems = fu.parseRequest(request);

        } catch (Exception e) {
           System.out.println("获取相关信息。。。。。。。。。。。。失败");
        }

        Iterator iter = fileItems.iterator(); // 依次处理每个上传的文件
        while (iter.hasNext()) {

            FileItem item = (FileItem) iter.next();// 忽略其他不是文件域的所有表单信息
            if (!item.isFormField()) {

                String name = item.getName();
                System.out.println("FileName===="+name);

                File fNew = new File(loadpath, name);

                try {

                    item.write(fNew);
                    System.out.println("..........Uploaded Successed");
                } catch (Exception e) {
                    System.out.println("An Error occured!");
                    e.printStackTrace();
                }

            } else // 取出不是文件域的所有表单信息
            {
                String fieldvalue = item.getString();

            }
        }

    }

}

> 请看我们的下一篇文章:Android 拍照并上传图片到服务器源码 >

>

> android端源码和web 端源码:http://115.com/file/bevc7e16#uploadsome.rar >

>

更新:我已经把源码共享出来了,大家可以随便下载!

最近帮老师做一个拍照上传的小android 应用。以前虽然看过这方面的东西,但是没有真正做过东西出来,这次老师要求在一个星期左右做出来,其实还是给了我不少压力,于是自己一边学习,一边写代码,同时在望山找了大量的东西,最初都没有解决这个问题。后面才慢慢解决这些问题。

下面是我写的源码给大家分享一下,说明一下,这些代码是调试完成可以运行的,当然这里没有提出全部的完整代码。如果各位需要的话,给我留言吧,我会通过邮箱发给大家的。 补充servlet端源代码:Android上传图片到服务器Server端servlet源码。这里的程序没有涉及服务器端使用的Servlet代码。稍后在贴出来给大家把。

// 选择拍照上传,获取bitmap 对象,并保存到sdcard中。
(takePhoto = (Button) findViewById(R.id.take_photo)) .setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) {
//启动相机
Intent myIntent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(myIntent, ACTIVITY_IMAGE_CAPTURE);
} });
// 因为调用了startActivityForResult,调用相机后回执行这个方法
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
//获取bitmap对象
Bundle dataBundle = data.getExtras();
Bitmap btp = (Bitmap) dataBundle.get("data");
data.putExtra(MediaStore.EXTRA_OUTPUT, btp);
/ 如果Junv文件夹不存在则创建文件夹,并将bitmap图像文件保存
dir = new File(ptoDir);
if (!dir.exists()) { dir.mkdirs(); Log.d("创建文件夹", "。。。。。。。。。。。成功"); }
 // 为文件随机产生文件名 
File tmpFile = new File(ptoDir, picName = System.currentTimeMillis() + ".jpg");
uploadFile = ptoDir + picName;
try {
// 将bitmap转为jpg文件保存
FileOutputStream fileOut = new FileOutputStream(tmpFile);
btp.compress(CompressFormat.JPEG, 100, fileOut);
} catch (FileNotFoundException e) {
//捕获异常
Log.d("File Saving", "fail.....");
}
// 将照片显示到程序中
ImageView myImage = (ImageView) findViewById(R.id.show_img);
//设置图片大小
btp = Bitmap.createScaledBitmap(btp, myImage.getWidth() - 10, myImage.getHeight() - 10, true);
//将图片加载到imageView中
myImage.setImageBitmap(btp);
myImage.setPadding(2, 2, 2, 2); } else { return; }
}

执行完这个方法,我们通过bitmap对象将拍照所得已经显示在程序里面了,然后之所以将其保存为文件,是为了上传的方便。

然后下面是一个上传的图片的方法,大概就是将图片构建成流发送到是、服务器端,这个代码是使用的网上一个前辈的代码,这里不知道他的地址了,但是还是说明一下吧,并表示感谢。

//上传文件至Server的方法
private void uploadFile(Bitmap btp) {
 String end = "rn";
 String twoHyphens = "--"; 
String boundary = "*****";
try {
URL url = new URL(actionUrl); 
HttpURLConnection con = (HttpURLConnection) 
url.openConnection();
//允许Input、Output,不使用Cache
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
//设置传送的method=POST
con.setRequestMethod("POST");
//setRequestProperty
con.setRequestProperty("Connection", "Keep-Alive");
con.setRequestProperty("Charset", "UTF-8");
con.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
// 设置DataOutputStream
DataOutputStream ds = new DataOutputStream(con.getOutputStream());
ds.writeBytes(twoHyphens + boundary + end);
ds.writeBytes("Content-Disposition: form-data; " + "name="file1";
filename="" + picName + """ + end); 
ds.writeBytes(end);
//取得文件的FileInputStream
FileInputStream fStream = new FileInputStream(uploadFile);
// 设置每次写入1024bytes
int bufferSize = 1024;
 byte[] buffer = new byte[bufferSize];
int length = -1;
// 从文件读取数据至缓冲区
while ((length = fStream.read(buffer)) != -1)
{
 // 将资料写入DataOutputStream中  
ds.write(buffer, 0, length);
 }
ds.writeBytes(end);
ds.writeBytes(twoHyphens + boundary + twoHyphens + end);
//close streams
fStream.close();
ds.flush();
// 取得Response内容
InputStream is = con.getInputStream();
int ch;
StringBuffer b = new StringBuffer();
 while ((ch = is.read()) != -1) {
 b.append((char) ch); }
// 将Response显示于Dialog
showDialog("上传成功" + b.toString().trim());
// 关闭DataOutputStream
ds.close();
 } catch (Exception e) { 
showDialog("上传失败" + e);
 } }
// 显示Dialog的method
private void showDialog(String mess) 
{ 
new AlertDialog.Builder(this).setTitle("Message").setMessage(mess) .setNegativeButton("确定", new DialogInterface.OnClickListener() {
 public void onClick(DialogInterface dialog, int which) { } }).show();
 }

请看我们的第一篇文章:Android上传图片到服务器Server端servlet源码

android端和web 端源码下载:http://115.com/file/bevc7e16#uploadsome.rar

不知道各位同学使用svn吗?简单说SVN是一个代码版本管理软件,可以让不同的人更新和同步代码,并对代码进行版本管理。现在google code 里面这么多开源项目,都是可以去用SVN checkout 下载下来源代码的,不知道各位有没有尝试呢?
Read more »
0%