分类 [ 开发 ] 下的全部文章

 

Apache solr

 

Installation & Configuration of Apache Solr

Before start with the installation of apache solr. Let's understand the working of apache solr. In this article, I am going to demonstrate the installation and integration part of solr with Magento.

Apache Solr:

  • Apache Solr is an open source application use for the search index.
  • Apache Solr is basically working as Full-text Search engine.
  • Solr provides the XML interface and JSON API with which search application can be work.
  • Solr is written on Java Platform.
  • It is very stable and reliable application when you need any application for the search index.
  • Apache Solr running on default port 8983.

Apache solr can be used or integrate with multiple platforms like Magento, drupaletc. In this article, we will see the integration of apache solr with Magento platform.

You need to install below packages on the server.

  • Apache Solr 3.6.X
  • JAVA 7.x or 8

We have using solr 3.6 version. Reason to use this version is because it is a stable solr version and compatible with Magento platform. We are tried using latest version with Magento but it will not compatible with Magento. I have personally recommended you to use Solr version 3.6 series.

I have divided this article into two parts,

  • Installation
  • Integration

Installation of Apache Solr

Step 1: Download Apache Solr

Download the below link on the server under the “/opt/ directory. Download this link using wget command.

  • cd /opt/
  • sudo wget https://archive.apache.org/dist/lucene/solr/3.6.2/apache-solr-3.6.2.zip
  • sudo unzip apache-solr-3.6.2.zip
  • sudo mv apache-solr-3.6.2 apache-solr

Step 2: Install Java

Here you need to install java version 7 or higher. Java supports to run apache solr.

Follow below simple steps to install java.

  • sudo apt-get update
  • sudo apt-get install openjdk-7-jdk
  • sudo java -version
    java version "1.7.0_101"
    
    OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu0.14.04.1)
    
    OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

Step 3: Run Apache Solr

Now you need to run apache solr process in the background with below java command. Go to the “/opt/apache-solr/example” and run java command onstart.jar file.

  • cd /opt/apache-solr/example
  • java -jar start.jar & [ & symbol use to run application in background]

Press “Enter” to come out of the process and open the new terminal window.
Check process is running with ps command & netstat command,

  • ps aux | grep java
root 10980 0.0 0.0 89568 4560 pts/8 S 13:36 0:0 sudo java -jar start.jar
  • netstat -tunlp | grep 8983
tcp  0  0  0.0.0.0:8983  0.0.0.0:*   LISTEN  9074/java

You can also setup init script to start,stop & restart the apache solr instead of running solr in the background. Check out below link for Apache solr Init script.

Read: Init Script to start,stop,restart apache Solr service.

Step 4: Check Solr panel

Now run the below URL to check Solr admin panel on the browser.

http://192.168.3.39:8983/solr/admin/
Apache solr

Installation part is completed. Now we move to our integration part which explains you configuration with Magento.

Integration of Apache Solr with Magento

Step 1 : Download Apache Solr module

Download the module from GitHub repo link and sync this code with your Magento code.

Don’t worry it will only sync the module files with code which need to run solarium on Magento.

  • git clone https://github.com/jeroenvermeulen/magento-solarium.git
  • rsync -avzP magento-solarium/*   yourcodedirectory/

Step 2: Copy solrconfig.xml and schema.xml

Now copy solrconfig.xml & schema.xml file from solarium to the apache-solr directory. Follow below steps to copy files in the exact location.

Follow below steps to copy files in the exact location.

sudo cp ./app/code/community/JeroenVermeulen/Solarium/docs/schema.xml   /opt/apache-solr-3.6.2/example/solr/conf/

sudo cp ./app/code/community/JeroenVermeulen/Solarium/docs/schema.xml   /opt/apache-solr-3.6.2/example/solr/conf/

Step 3: Restart Solr Server

If you do not yet install init script then you need to kill the solr process and run again in the background.

  • ps aux | grep java
  • Kill -9 PID   [stop service]
  • cd /opt/apache-solr/example
  • sudo java -jar start.jar  [start service]

Step 4 : Configuration Solr in Magento panel

Now open Magento admin panel in the browser. Go to the “System → Configuration → Catalog → Solarium”.

Once you open configuration window use same settings which show in below image. After filling all the configuration settings click on “Test Connection” & “Self Test” button.

magento-admin3

Once you get the success message on clicking Test Connection then your configuration is successfully completed.

Step 5 : Reindex the Catalog Search

Once configuration part compete you need to run catalog indexing which helps to build the solr search. After reindexing open website and search in the search box you will get the search result.

Apache solr

I hope you like the article if you find any difficulties while installing apache solr with magento then please do comment your queries or problem via the comment section, till then stay tuned to techthings.org for more such valuable articles.

尝试树莓派2 2015年12月16日

采用树莓派做云终端,要求能运行常用的客户端,比如rdp, vmware, citrix, spice 等等。

从网站http://dl.armtc.net/RPi-TC/RPiTC2_r1.99.beta.img.rar下载专门为树莓派定制的云终端 操作系统,解压后产生一个镜像文件RPiTC2_r1.99.img,在windows下利用工具Win32DiskImager把 RPiTC2_r1.99.img写到microSCD卡中,然后用此卡去启动树莓派,如果屏幕没有任何显示,那就把microSCD卡放入读卡器,并接 到linux操作系统中(物理机或虚拟机里安装的linux都可以),然后在Linux系统中先用fdisk -l列出全部硬盘的全部分区(包括scd卡),然后把scd卡的第一个分区(那个fat文件系统分区)挂载到/mnt,然后进入/mnt目录可以看到 config.txt文件,这是树莓派的主要配置文件,如果参数不对,就会导致屏幕无显示。首先把“#hdmi_safe=1”中的“#”去掉,这样就能 兼容绝大多数的屏幕。好了,然后把scd卡插入树莓派,通电,这时屏幕就会点亮了。但是很可能分辨率不对,先调整分辨率再说:

鼠标右击屏幕空白处,然后点击“Terminal Emulator”打开一个终端窗口,然后输入命令:

/opt/binaries/tvservice -m CEA                    ----查看支持的屏幕分辨率,如果没找到与自己显示器分辨率相同的行,使用下面命令继续找。

/opt/binaries/tvservice -m DMT                   ----查看支持的屏幕分辨率,找到与自己显示器分辨率相同的那行,记下那个mode号码,比如35。

/opt/binaries/tvservice -s               ----显示当前的屏幕状态。

最后我的config.txt如下:

hdmi_force_hotplug=1                                        ----有的hdmi必能自动检测出来,需要这个参数做前置hdmi输出,否则可能屏幕黑屏。

hdmi_group=2                                          ----这两行设置hdmi转vga方式,并且设置分辨率为1280*1024。

hdmi_mode=35

hdmi_drive=2                                          ----前置hdmi模式,而不是dvi模式。

config_hdmi_boost=4                        ----增强hdmi信号,如果黑屏就要设置这个参数。

dtparam=audio=on                           -----声音从hdmi输出。

arm_freq=1000                                 ----连续5个参数时针对二代树莓派的超频设置。

sdram_freq=500

core_freq=500

over_voltage=2

initial_turbo=20

gpu_mem=256                                ---显示内存容量256MB。

avoid_warnings=2                         ---不显示彩虹警告。

boot_delay=0                                  ----启动不延时。

kernel=kernel7.img

最后重启,分辨率调整完毕。接下来配置网卡。鼠标移到屏幕最右边,在弹出的菜单中选择“Network Connections",然后在里面配置网卡的参数。保证网络能连上因特网。

配置应用程序,启动时自动显示的那个配置界面(RPiTC Builder)上,选择自己需要的客户端程序,记得要勾选OS Services页上的“SSH Server(Debian repo)”,这样以后即使黑屏,也可以远程登录过去修改配置文件,然后点击“Bash Me!”按钮,再点击“Open Xterm”按钮,在打开的命令窗口中运行./bashme.sh开始安装被选中的软件。配置完后让下一次开机不要自动显示这个配置画面:右击屏幕,选择 Settings-->Settings Manager-->Seesion and Startup-->Application Autostart,把“RPiTC Builder(……)”前的勾去掉即可。以后万一还要做配置时:右击屏幕-->Settings-->RPiTC Builder。

修改root密码:打开一个命令终端窗口,然后输入如下命令:

sudo -s

passwd root

作为瑞士军刀的Python 2015年6月26日

本文转自“编程随想”博客

"瑞士军刀",大伙儿应该很熟悉,俺就不解释了。拿"瑞士军刀"来比喻 Python,意思是:Python 不但短小精悍,而且功能强大。今天就来介绍一下 Python 的这两个特点(尤其是后者)。

一、短小精悍

◇轻量级的的代码

要吹嘘 Python 的轻量级,首先要吹嘘的,自然是它简洁的代码。为了让大伙儿有个初步的印象,举几个例子。

举例1
要得到100-200之间所有奇数的3次方,只需如下一行
[x**3 for x in range(100, 200) if (x%2)==1]

举例2
如果要把上述结果拼成一个逗号分隔的字符串,还是只要一行
','.join([str(x**3) for x in range(100, 200) if (x%2)==1])

举例3
可能有人觉得上面2个例子是小儿科,再来举一个稍微复杂点的。只需一行代码,即可实现网络扫描(用的是第三方的 Scapy 工具)。

# 传统的 ping 扫描,基于 ICMP 协议
ans,unans = sr(IP(dst='192.168.1.1-254')/ICMP())
# 局域网扫描,基于 ARP 协议
ans,unans = srp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst='192.168.1.0/24'), timeout=2)

◇轻量级的安装环境

比如 Python 的安装包只有十几兆,而 Java 的 JDK 安装包动辄接近100兆。

◇轻量级的运行环境

同样是运行一个 Hello World,Python 进程占用的内存更小(相比很多其它编程语言)。而且 Python 的运行环境(Python 虚拟机)可以很方便地嵌入到 C/C++ 程序中,只需额外带一个动态库即可。

二、功能强大之1——跟非常多的语言整合

很多程序员喜欢"在一棵树上吊死"——始终只用一种编程语言。俺非常反对这种倾向。要想成为一个优秀的程序员,有必要掌握不同风格的编程语言。编程语言多样化的好处在于,你可以利用不同语言的特色,以取长补短。
而 Python 在跨语言整合方面,堪称佼佼者——你很难找到哪个语言,能像 Python 这样,跟如此多的语言进行整合。
下面简单举几个例子:

◇跟 C/C++ 整合

咱们常用的 Python 运行环境也称为 CPython,是用 C 语言写的。所以 Python 天生就具有跟 C/C++ 整合的能力。而且这种整合是双向的——也就是说,既可以在 Python 模块调用 C/C++ 模块,也可以在 C/C++ 模块调用 Python 模块。
Python 跟 C/C++ 整合,可以有如下三个优点:

1. 丰富的第三方资源
因为 C/C++ 具有非常丰富的第三方模块(包括开源和闭源),其丰富程度超过 Java。所以 Python 可以利用这种整合能力,直接调用各种 C/C++ 的模块,来丰富自己的功能。
举个例子
比如 cURL 是一个C语言编写的应用层网络工具,功能非常强。而 Python 可以通过整合 cURL 直接获得 cURL 的强大功能。

2. 性能的提升
除了第三方模块丰富,C/C++ 开发的模块还有一个优点——性能好。所以,Python 整合了 C/C++ 模块之后,还能趁机获得性能提升。
举个例子
比如你要写一个 3D 游戏,其中的 3D 渲染引擎是性能瓶颈。那么你可以用 Python 整合一个 C/C++ 的 3D 渲染引擎。而 Python 只用来实现跟游戏高层应用逻辑相关的部分。这样可以一举两得:性能不差,代码不多。
顺便说一下:如今有不少游戏都走这个开发思路——底层引擎用重型的 C或C++ 实现,以确保高性能;而高层的业务逻辑则用轻型的脚本语言开发。

3. 跟操作系统整合
地球上所有的操作系统,只要是有点名气的,内核都是 C 语言写的;除了操作系统内核,大部分操作系统的运行库也都是 C/C++ 编写的。所以,Python 跟 C/C++ 整合,可以带来第三个好处——跟操作系统的整合。关于这点,待会儿俺还会专门聊。

◇跟 JVM(Java) 整合

通过 Jython 这个开源项目,Python 可以无缝整合到 JVM 环境中。如此一来,Python 能直接调用所有 JVM 标准库(比如 JDBC)和第三方库(比如 Lucene),还可以跟各种 JVM 语言(比如:Java、Scale、Groovy、等)进行互操作。

◇跟 dotNet 整合

通过 IronPython 这个开源项目,Python 可以无缝整合到 dotNet 环境中。如此一来,Python 能直接调用所有 dotNet 的标准库(比如 ADO.NET)和第三方库,还可以跟各种 dotNet 语言(比如:C#、F#、等)进行互操作。
顺便说一下:Jython 跟 IronPython 貌似同一个作者,牛人啊!

三、功能强大之2——既可以跨平台,又可以跟操作系统深度整合

◇语言的平台性

说到跨平台这个话题,俺给编程语言分一下类:
1. 可以跨平台,但无法跟操作系统深度耦合(比如 JavaScript、PHP)
2. 可以跟操作系统深度耦合,但无法跨平台(比如 VB、VBScript)
3. 既可以跨平台,又可以跟操作系统深度耦合(比如 C C++ Python)

为啥第三类语言能做到两者兼得?因为这类语言把选择权留给了程序猿——
一方面,如果程序猿遵循跨平台的开发规范,那么写出来的代码就是跨平台的;
另一方面,程序猿也可以写出跟系统耦合很紧密的代码——这样的代码虽然不能跨平台,但可以发挥特定平台的强项。
显然俺喜欢第三类编程语言,因为这类语言给了程序猿自由。

◇Python 举例

Python 的跨平台特性,懂 Python 的同学估计都晓得了。所以俺单独说一下 Python 如何跟操作系统深度整合。为了照顾到大多数人,俺拿 Windows 来说事儿。
在 Python 社区有一个很有名气的库,叫做 PyWin32。通过这个库,可以让 Python 代码很容易地调用 Windows 的 API 以及 COM 组件。
比方说,可以用 Python 代码直接操作 Windows 注册表
比方说,可以用 Python 代码直接读写 Windows 的系统日志
比方说,可以用 Python 代码直接操作某个窗口句柄
比方说,可以利用 COM 组件,直接调用 Word 来处理 doc 格式的文档
......

四、功能强大之3——具有很丰富的第三方模块

最后一个方面,也是最重要的一个方面,就是 Python 社区具有非常非常丰富的资源(第三方库),而且几乎都是开源的。形形色色的编程领域几乎都可以看到 Python 的身影。
为了让众多程序员读者领略 Python 的丰富资源,俺特地整理了一个 wiki 页面(请用鼠标猛击"这里"),放上 Python 在各个编程领域的常用模块。为了显示出 Python 代码的简洁,某些模块还放上示例代码。
最后提一下:写这篇博文只花了不到一小时,而整理这个 wiki 页面累计超过10个小时。不过这时间没白花——整理的时候顺便对某些领域有了更多的了解。这也就是写博客的好处,既可以帮助别人,又可以帮助自己。大伙儿如果觉得俺整理的清单有遗漏,欢迎到本页面留言补充。

操作平台:ubuntu 10.04, xscale270, 交叉编译工具版本4.7.1

在嵌入式Linux上目前流行的图形系统主要是Qt/Embedded,几年前被若基亚手机厂商收购,同时推出商业版和开源版本,收购之后并没有扭转若基亚公司的衰落趋势,作为昔日手机的知名企业,目前已到倒闭的边沿,没办法,只好委身于微软,深度合作,推出基于WP操作系统的智能手机,但是市场反应起色不大,若基亚自己都不在手机中使用QT了,也放弃了自己的Meego操作系统,所以QT 目前前景似乎不明朗,到底向左还是向右,大家都在观望。若基亚收购QT,像极了当年SUN收购MySQL数据库,后来SUN自身难保,被卖给了ORACLE公司。QT最新的版本是5.0.2,官网是http://qt.digia.com/,社区为http://qt-project.org/。我们移植qt-everywhere-opensource-src-4.7.4版本,从4.0开始,qt不在分通用版和嵌入式版,统一命名为everywhere。

SPDY 是 Google 开发的基于传输控制协议 (TCP) 的应用层协议 ,开发组正在推动 SPDY 成为正式标准(现为互联网草案)。SPDY 协议旨在通过压缩、多路复用和优先级来缩短网页的加载时间和提高安全性。(SPDY 是 Speedy 的昵音,意思是更快)

阅读全文

嵌入式实训 2012年2月29日

阅读全文

VS2008/VS2010连接TFS 2012年1月01日


当管理人员建立好TFS服务器之后,其他工作人员便可以通过TFS的客户端来连接服务器了,在下面内容中,我们会提及到以下内容。

  • 如何连接TFS
  • 如何建立新的团队项目
  • 源代码保护
  • 如何管理项目文档
  • 如何通过Web形式访问项目门户

1. 如何连接TFS

对于非技术人员可以不安装TFS的客户端,而直接通过Web形式来访问团队门户,但如果是技术人,那么要确定IDE的版本,如果使用VS2010,则不需要额外安装,该功能已经集成在IDE中。如果使用的是VS2008,则需要安装TFS的客户端浏览器,将TFS的ISO加载到虚拟光驱中,并且运行setup.exe,在弹出的安装窗口中选择“Team Explorer”(团队浏览器),如下图所示:

Team Explorer安装完毕之后,打开VS IDE,在IDE的工具栏上会多出一个图标,如下图所示:

点击这个图标,就会打开团队管理器,如下图所示:

此时,请点击按钮,以添加新项目,点击之后,会弹出“Connect to Team Foundation Server”(连接到TFS)对话框,如下图所示:

点击“Servers”按钮,会弹出“Add/Remove Team Foundation Server”对话框,如下图所示:

点击“Add”按钮,添加新的服务器,这里只需要输入服务器的IP即可,路径,商品号以及协议均采用默认,如下图所示:

配置完毕之后,点击“OK”,便可以进行首次连接,如下图所示:

连接完毕后的效果,如下图所示:

2. 如何建立新的团队项目

在服务器名称上点右键,在弹出的菜单上选择“New Team Project”,如下图所示:

在弹出的窗口中,首先输入项目的名称,如下图所示:

然后选择项目管理过程的模板,如下图所示:

默认的模板是MS的敏捷方式模板,同时还为用户提供了基于CMMI的标准管理模板(两种管理方式的区别是一个比较大的话题,我们会在以后的Blog中时行分类讲解),这里选择敏捷开发方式模板。

接下来,要设置项目门户的标题以及供述,同时自动生成一个门户网址(用户可以通过门户方式对项目进行管理,不需要安装TFS客户端),如下图所示:

下面,来选择源代码管理的文件夹名,这里采用默认名称,如下图所示:

最后点击下一步,完成。新项目建立完毕之后,团队管理器如下图所示:

从上图中可以看出,通过设置敏捷开发方式,系统为用户自动生成了对应的工具模板,其中包括:工作项文件夹(主要用于工作项的传递以及追踪),文档文件夹(用于开发人员之间文档的传递),报表文件夹(用来存储项目相关的报表,如进度报表等),编译方案文件夹(用来配置MS Build,以定制编译方案)以及源代码控制。

3. 源代码保护

下面我们在VS2010中建立一个解决方案,并添加几个项目,然后把这些项目的源代码签入到刚才建立的TFS上。

首先,要将VS连接到刚才建立好的TFS上(方法和前面所讲的一样,这里不再重复),然后建立几个项目,如下图所示:

其中,MyProject.Web是应用系统的表现层,MyProject.Bl是业务逻辑层,MyProject.DA是数据访问层。下面在MyProject的解决方案上点击右键,在弹出的菜单下点击“Add To Source Control”,如下图所示:

在弹出的窗口中选择对应的项目(这里是TestProject),并确定,如下图所示:

这里,我们会在解决方案窗口中发现所有的项目前面都有一个图标,这表明现在所有的项目还没有被签入过,如下图所示:

代码的签入比较简单,只需要在解决方案上点击右键,选择“CheckIn”即可,如下图所示:

这时系统会为用户提示要签入的文件,如下图所示:

点击“CheckIn”按钮后,代码文件会被签入,同时代码的图标也会变成,表示代码已经被锁定,不能更改。

如果需要修改代码,并且别人不能同时修改,可以将代码签出,此时,右键点击要签出的文件,选择“CheckOut For Edit”,如下图所示:

然后会弹出文件签出窗口,然后在LockType选项中选择第二项,即当前用户可以修改,其他用户不能修改,最后点击“CheckOut”按钮,如下图所示:

被签出的代码文件的图标会变成,如下图所示:

如果想在其他用户的计算机上打开源代码,首先,连接远程TFS,方法和前面所说的连接方法一样,然后在Team Explorer双击“Source Control”,如下图所示:

这时会打开当前团队项目的“Source Control Explorer”,找到对应的解决方案文件,打开即可,如下图所示:

4. 如何管理项目文档

展开Team Explorer的“Documents”文件夹,我们可以看到系统已经为用户自动生成好了一系统列的文档模板,其中包括几个Excel和Project文件模板,如下图所示:

此时可以直接打开并编辑。

同时,你也可以新新建立文档,并上传,只要在对应的文件夹上点击右键,在弹出的菜单中点击“Upload Document”,如下图所示:

这样,您的文档就可以被其他人共享。

5. 如何通过Web形式访问项目门户

在Team Explorer中选择对应的项目,在右键弹出菜单中选择“Show Project Portal”,如下图所示:

此时项目的门户的页面就会被打开,如下图所示:

该门户基本上可以实现和Team Explorer相同的功能,非技术人员可以通过些种方式来进行项目管理。

 

TIOBE 于今日公布了2011年12月编程语言排行榜,虽然前三的位置还是Java、C 和 C++,但是第三位置恐将很快易主。

从2001年开始,TIOBE指数排行榜第三的这个位置,C++编程语言一直坐的比较稳定。虽然Perl、Visual Basic和PHP曾经也位居第三,但它们坚持的时间仅有数月。现如今,C#就要叩响第三位置的大门了(C#和C++之间的Ratings差距不到 0.05%)。这又将是一场硬仗了,我们将在未来数月内看到结果了。

编注:C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#由C语言和C++派生而来,继承了其强大的性能,同时又以.NET 框架类库作为基础,拥有类似Visual Basic的快速开发能力。C#由安德斯·海尔斯伯格主持开发,微软在2000年发布了这种语言。

此外,Objective-C在本期中又上升至第5位,上个月是第6位。Logo语言从业上月的第21位升至第18位。

2011年12月编程语言排行榜 Top 20 具体榜单

2011年12月编程语言排行榜 Top 20

 

特别声明:本文可以转发,但是一定要注明出处“摘自开源盛世的博客:非常开源www.veryopen.org”,唯独百度文库不能收录。

注意:本文是在ubuntu 10.04 desktop i386操作系统上完成的,对于在ubuntu 9.04操作系统上制作工具量的方法参见“手工制作最新版arm-linux交叉工具链(ubuntu 9.04)

1、准备目录和环境变量

EELiod平台采用PXA270微处理器,而在Linux-2.6.28核中有好几款平台采用了PXA270,如Intel的mainstone、Phytec phyCORE-PXA270 CPU cardPalm Zire72HTC Magician PDA phones等),根据这几款平台为蓝本来移植EELiod应该问题不大,交叉工具链采用arm-linx-4.2.1(如果没有就参照“手工制作最新版arm-linux交叉工具链”手工制作)。