- Visual Studio(VS)中使用OpenMP
我叫柳云烟
c++visualstudio算法
一、OpenMP简介OpenMP是由OpenMPArchitectureReviewBoard牵头提出的,并已被广泛接受,用于共享内存并行系统的多处理器程序设计的一套指导性编译处理方案。它支持的编程语言包括C、C++和Fortran,支持的编译器包括SunCompiler、GNUCompiler和IntelCompiler等。二、VS中启用OpenMP项目配置:打开你的VS项目,找到“项目属性”。
- reviewboard 安装
求索
reviewboard安装环境准备centos7python2.7.5pipgccActivateApache(httpd)pip安装下载pip最新包解压后运行命令pythonsetup.pyinstallApache安装sudoyuminstallhttpd.x86_64sudosystemctlstarthttpd.serviceApache安装mod_wsgi$wgethttps://pyp
- 使用openmp为循环逻辑提速
超级小清
C++c++
使用OpenMP为循环逻辑提速什么是OpenMP?OpenMP是由OpenMPArchitectureReviewBoard牵头提出的,并已被广泛接受的,用于共享内存并行系统的多线程程序设计的一套编译指令(CompilerDirective)。OpenMP支持的编程语言包括C语言、C++和Fortran;而支持OpenMP的编译器包括SunCompiler,GNUCompiler和IntelCom
- CMake 学习笔记(OpenMP)
liyuanbhu
CMake学习笔记CMake
CMake学习笔记(OpenMP)OpenMP是由OpenMPArchitectureReviewBoard牵头提出的,并已被广泛接受,用于共享内存并行系统的多处理器程序设计的一套指导性编译处理方案(CompilerDirective)。简单的说就是使用OpenMP,我们就可以不需要自己建立线程来实现多线程并行计算。这篇博客主要讲讲CMake对OpenMP的支持。我们知道,不同的编译器开启Open
- reviewboard svn post-review hook
阳明 to life
总结svnreviewreviewboarsvn-hook
需求希望每次提交到分支上的代码自动提交到reviewboard,通过svnpost-reviewhook脚本实现调用rbt工具发起codereview。改进过程python和svn绑定问题运维同学在使用hook脚本时发现通过源码编译出来的python和svn无法关联使用,一方面是缺少python的svn库,另一方面是缺少相应动态库。http://stackoverflow.com/question
- OpenMP、MPI、CUDA总结
鲸落寰宇
一、OpenMPOpenMP是由OpenMPArchitectureReviewBoard牵头提出的,并已被广泛接受的,用于共享内存并行系统的多线程程序设计的一套指导性注释(CompilerDirective)。OpenMP支持的编程语言包括C语言、C++和Fortran;而支持OpenMP的编译器包括SunCompiler,GNUCompiler和IntelCompiler等。OpenMP提供了
- Review Board codereview 的跑通流程
向内而生_向死而生
前言:有很多开发工具支持一些插件来支持ReviewBoard,我知道的安卓,java开发工具都是有插件来支持的,我用的xcode不支持,所以这里我主要说的是使用RBTools(下面我都简写rbt)跑通流程。步入正题了:---我以我们这的整个流程来说---先说一下最后实现的效果:说效果之前呢,先说一下项目的基础配置:1,项目使用的git,平台搭建git环境,我们这边是自己搭建的gitlab服务。2,
- 苹果审核
JohnSnow_b20c
最流弊的回复,全新开发者账号,而且支付收款账号应该是没有被关联的,等待审核超过一周,出结果就是14天后账号被封,后来也在AppReviewBoard进行了申诉,目前还没有任何消息,也不知道在哪能查看到苹果的回复.绝望只能换账号2019年1月18日上午7:22发件人Apple*Other-OtherHello,Uponfurtherreviewoftheactivityassociatedwithy
- 开源社区的相关账号
木木与呆呆
以Ranger项目为例,说明在开源社区需要使用的各种账号,及其作用。1.JiraIssue创建issuehttps://issues.apache.org/jirayuwen/zdh12342.ReviewBoard创建reviewrequest,进行代码reviewhttps://reviews.apache.orgyuwen/zdh12343.GitPush账号拥有该账号,即代表成为项目的co
- 2018/5/16 Selenium2 java自动化测试实战
王小瑶93
第一章自动化测试基础根据项目流程阶段划分软件测试单元测试、集成测试、系统测试、验收测试单元测试是对软件中最小单元进行测试,CodeReview指对代码评审或代码审查,通过对源码进行系统性检查的过程。目的是查找系统缺陷。java中的reviewclipse和Jupiter,python中的ReviewBoard.接口自动化测试:模块接口测试和web接口测试模块接口测试主要调试模块之间的调用和返回we
- 代码提交管理流程
Felven
Felven在职场
1.原代码2.修改(加了几个字符)3.创建patch右键->team->创建补丁->保存到剪切板->桌面新建一个文本->将patch复制进去保存4.申请review登录reviewboard–>NewReviewboardRequest填入必要的信息,并且注意左上角的#8就是reviewid如果没有足够的ship提交也是不能通过的,如下:Teamleader会自动收到邮件,也可以自行通知他。Tea
- 【整理】PYTHON代码审查工具
成字第0431879
摘要:这两天看了python相关代码的审查、覆盖等工具,先记录下来,后边再总结其用法。python的review工具ReviewboardReviewboard是一个基于web的工具,主要设计给django和python的用户。Reviewboard可以帮助我们追踪待决代码的改动,并可以让Code-Review更为容易和简练。尽管Reviewboard最初被设计在VMware项目中使用,但现在其足
- 从Code Review 谈如何做技术
深空星寒
设计模式/策略codereview敏捷开发质量保证
转自:http://coolshell.cn/articles/11432.html感谢作者(这篇文章缘由我的微博,我想多说一些,有些杂乱,想到哪写到哪)这两天,在微博上表达了一下CodeReview的重要性。因为翻看了阿里内部的ReviewBoard上的记录,从上面发现CodeReview做得好的是一些比较偏技术的团队,而偏业务的技术团队基本上没有看到CodeReview的记录。当然,这并不能说
- 苹果应用审核被拒,二进制文件被拒绝,怎么回事?
qq_25345643
苹果应用审核被拒,二进制文件被拒绝,怎么回事?Hello,IfyouwouldliketoappealthisrejectiontotheAppReviewBoard,youmustdosowithin14calendardays.Otherwise,yourApple2018年12月9日上午3:25发件人AppleOther-OtherHello,Ifyouwouldliketoappealth
- 程序质量管理(一)——关于Review
金城寺
技术管理
Review是日常开发中一个非常重要的步骤,尤其对于项目临发布阶段,或者团队成员水平参差不齐的情况下。我目前采取的管理策略是利用ReviewBoard平台供团队成员发布Review,在Web上完成Review的工作;在版本控制工具的后台设置触发器,检测提交是否是经过Review的,没有完成Review的修改不允许被提交。图一在ReviewBoard上发布一条Review,并通知团队成员进行Revi
- 从Code Review谈如何做技术
酷壳
CodeReview
这两天,在微博上表达了一下CodeReview的重要性。因为翻看了阿里内部的ReviewBoard上的记录,从上面发现CodeReview做得好的是一些比较偏技术的团队,而偏业务的技术团队基本上没有看到CodeReview的记录。当然,这并不能说没有记录他们就没有做CodeReview,于是,我就问了一下以前在业务团队做过的同事有没有CodeReview,他告诉我不但没有CodeReview,而且
- 代码审查工具【Review Board】在Windows环境下安装与配置
xiao503
Windows
前言ReviewBoard是基于Web的代码审查工具。官方网站:https://www.reviewboard.org/ReviewBoard在Windows环境下安装是一件比较困难的事情,官方网站暂时没有提供相应的安装方法。官网指出Bitnami提供了windows的安装包,如下:InstallingonWindowsWindowsisadifficultenvironmentforPython
- ReviewBoard-安装(Centos 7)
Bboy-AJ-任杰
☆Ops————ReviewBoard
准备 ReviewBoard基于Python程序语言,采用了DjangoWeb框架开发,因此在安装ReviewBoard之前,需要做一些准备工作:安装Python2.7及以上安装MySQL5.6及以上数据库(还支持PostgreSQL)安装ApacheHTTP服务器和mod_wsgi模块安装Python2.7 Centos系统中一些命令会依赖Python,因此系统会默认安装Python。如果为
- 从零开始搭建 reviewboard 环境(二) -- reviewboard 的安装环境搭建
qqliyunpeng
reviewboardreviewboard安装使用
在安装Ubuntu上的reviewboard时,必须要保证如下软件正常安装了reviewboard的安装用户手册:点这里当然,中文的介绍还是要有的:1.reviewboard需要有数据库的支持:MysqlPostgreSQLsqlitev32.需要有web服务器的架构:apache+mod_wsgi,fastcgi,ormod_pythonlighttpd+fastcgi数据库的选择方面,由于sq
- 从零开始搭建 reviewboard 环境(一) -- reviewboard 的介绍
qqliyunpeng
reviewboardreviewboard安装使用
reviewboard的介绍:代码审查(CodeReview)不但可以提高质量,而且还是一个知识共享和指导的极好的手段。reviewboard便是这样一款开源的软件。他基于Django,起源于VMware的一些开发者。能够很好的使用各种大小项目的需求。ReviewBoard在审查补丁(Patch)方面表现完美。一个叫做“提交审查”的工具被用来和SCM系统进行连接(当前支持SVN、CVS、Perfo
- CentOS安装ReviewBoard记录
德星
ubuntu环境
一、安装Apache1.#yuminstallhttpd2.#systemctlenablehttpd.service(开机自启动httpd)3.#yuminstallmod_wsgi(Python网关接口模块)如果安装好的mod_wsgi后,有/etc/httpd/conf.modules.d/10.wsgi.conf文件,就不需要做额外配置;否则需要在/etc/httpd/conf/httpd
- 【ReviewBoard】安装与配置
dengdi8115
0.引言环境:Ubuntu14.04Server(虚拟机)这篇文章里说的是reviewboard官方的安装方式,bitnami出了针对win/linux的集成安装包,用它可能简单点,没有尝试,可以到这里下载:https://bitnami.com/stack/reviewboard/installer1.安装步骤参考:官方安装指南安装apache和mod_wsgi安装mysql安装依赖项sudoa
- 基于centos搭建reviewboard
nuclias
linux
基于centos,apache,mysql安装reviewboard3.0.17Prepartion1.CentOSLinuxrelease8.1.1911(Core)2.Sambainstall3.dependencesinstall$yuminstallgcclibffi-developenssl-develpatch$sudoyuminstallpython2-devel.x86_64$su
- CentOS下安装ReviewBoard
EmmaMWang
reviewboar
CentOS下安装ReviewBoard!墙裂警告:请使用桥接模式的虚拟机系统。这样才能使别人也访问到,而不是只有宿主机和虚拟机可访问。系统安装的时候应该是默认NAT的,更改为桥接模式有点麻烦,问我怎么弄,问度娘。。。。。。安装完成了才发现是NAT的,那就映射到宿主机windows下吧,这样其他机台就能通过宿主机指定的端口号访问了。参考我的解决问题七、如何访问虚拟机中的架设的Web服务器(解决方法
- 在CentOS系统上搭建Reviewboard
weixin_34198762
ReviewBoard是一款比较优秀的,基于WEB的代码审查工具,相关的详细介绍可以参见其官网:http://www.reviewboard.org。如果想在自己的项目中免费的使用ReviewBoard,你需要自己部署(说实话,过程还是很痛苦的)。本文以CentOS系统为例,将详细的安装步骤逐一给出,希望能够给大家带来一丝的便利。首先,请确保你的CentOS系统里面已经包含了Apache,Mysq
- Ubuntu下ReviewBoard安装全过程
Franco-cao
配置管理工具
经过长达一个半月的研究探索,终于搭建完成一个可以跑完一个流程的系统,感觉超有成就感!1开始搭建之前必须要安装easy_install的软件:sudoapt-getinstallpython-setuptoolspython-dev;2安装apache2和mod_pythonsudoapt-getinstallapache2libapache2-mod-pythonsudoa2enmodpython
- Ubuntu 下ReviewBoard实现post-review
Franco-cao
配置管理工具
看了许多有关时间postreview的文章,但是实现过程中会有许多的问题,我把我实现的原理写下来,给大家参考下!搭建的过程可以参考:http://blog.csdn.net/u011771638/article/details/36391087#1536434-tsina-1-26460-66a1f5d8f89e9ad52626f6f40fdeadaa至于pre-review和post-revie
- 安装与配置ReviewBoard
zzzyyyttt
目标:安装ReviewBoard2.5.13环境:阿里云centos6.8新系统注意:如果已安装某些软件包,可能造成安装失败,请根据情况卸载后重新安装安装python2.7及reviewboard执行以下步骤安装python2.7及reviewboard,可拷贝成脚本执行,假设脚本名为install_reviewboard.sh,执行sudo./install_reviewboard.sh,注意脚
- Code Review : Review Board + Svn
wenfh2020
管理开发技巧
方案:System:(两个系统都成功搭建过)1、CentOSrelease6.8(Final)2、RedHatEnterpriseLinuxServerrelease6.5(Santiago)ReviewBoard2.5.7Svn:SubVersion1.8ServerPython:Python2.6.6WindowsSvn:VisualSVNServer+TortoiseSVN团队不大,对于团队
- LOCAL_CFLAGS参数说明
weixin_34097242
1、-Wall是打开警告开关2、-O代表默认优化,可选:-O0不优化,-O1低级优化,-O2中级优化,-O3高级优化,-Os代码空间优化3、-g是生成调试信息,生成的可执行文件具有和源代码关联的可调试的信息4、-fopenmpOpenMp是由OpenMPArchitectureReviewBoard牵头提出的,并已被广泛接受的,用于共享内存并行系统的多处理器程序设计的一套指导性的编译处理方案(Co
- eclipse maven
IXHONG
eclipse
eclipse中使用maven插件的时候,运行run as maven build的时候报错
-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
可以设一个环境变量M2_HOME指
- timer cancel方法的一个小实例
alleni123
多线程timer
package com.lj.timer;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class MyTimer extends TimerTask
{
private int a;
private Timer timer;
pub
- MySQL数据库在Linux下的安装
ducklsl
mysql
1.建好一个专门放置MySQL的目录
/mysql/db数据库目录
/mysql/data数据库数据文件目录
2.配置用户,添加专门的MySQL管理用户
>groupadd mysql ----添加用户组
>useradd -g mysql mysql ----在mysql用户组中添加一个mysql用户
3.配置,生成并安装MySQL
>cmake -D
- spring------>>cvc-elt.1: Cannot find the declaration of element
Array_06
springbean
将--------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3
- maven发布第三方jar的一些问题
cugfy
maven
maven中发布 第三方jar到nexus仓库使用的是 deploy:deploy-file命令
有许多参数,具体可查看
http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html
以下是一个例子:
mvn deploy:deploy-file -DgroupId=xpp3
- MYSQL下载及安装
357029540
mysql
好久没有去安装过MYSQL,今天自己在安装完MYSQL过后用navicat for mysql去厕测试链接的时候出现了10061的问题,因为的的MYSQL是最新版本为5.6.24,所以下载的文件夹里没有my.ini文件,所以在网上找了很多方法还是没有找到怎么解决问题,最后看到了一篇百度经验里有这个的介绍,按照其步骤也完成了安装,在这里给大家分享下这个链接的地址
- ios TableView cell的布局
张亚雄
tableview
cell.imageView.image = [UIImage imageNamed:[imageArray objectAtIndex:[indexPath row]]];
CGSize itemSize = CGSizeMake(60, 50);
&nbs
- Java编码转义
adminjun
java编码转义
import java.io.UnsupportedEncodingException;
/**
* 转换字符串的编码
*/
public class ChangeCharset {
/** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */
public static final Strin
- Tomcat 配置和spring
aijuans
spring
简介
Tomcat启动时,先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME。然后找这个变量所指的目录下的conf文件夹,从中读取配置文件。最重要的配置文件:server.xml 。要配置tomcat,基本上了解server.xml,context.xml和web.xml。
Server.xml -- tomcat主
- Java打印当前目录下的所有子目录和文件
ayaoxinchao
递归File
其实这个没啥技术含量,大湿们不要操笑哦,只是做一个简单的记录,简单用了一下递归算法。
import java.io.File;
/**
* @author Perlin
* @date 2014-6-30
*/
public class PrintDirectory {
public static void printDirectory(File f
- linux安装mysql出现libs报冲突解决
BigBird2012
linux
linux安装mysql出现libs报冲突解决
安装mysql出现
file /usr/share/mysql/ukrainian/errmsg.sys from install of MySQL-server-5.5.33-1.linux2.6.i386 conflicts with file from package mysql-libs-5.1.61-4.el6.i686
- jedis连接池使用实例
bijian1013
redisjedis连接池jedis
实例代码:
package com.bijian.study;
import java.util.ArrayList;
import java.util.List;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoo
- 关于朋友
bingyingao
朋友兴趣爱好维持
成为朋友的必要条件:
志相同,道不合,可以成为朋友。譬如马云、周星驰一个是商人,一个是影星,可谓道不同,但都很有梦想,都要在各自领域里做到最好,当他们遇到一起,互相欣赏,可以畅谈两个小时。
志不同,道相合,也可以成为朋友。譬如有时候看到两个一个成绩很好每次考试争做第一,一个成绩很差的同学是好朋友。他们志向不相同,但他
- 【Spark七十九】Spark RDD API一
bit1129
spark
aggregate
package spark.examples.rddapi
import org.apache.spark.{SparkConf, SparkContext}
//测试RDD的aggregate方法
object AggregateTest {
def main(args: Array[String]) {
val conf = new Spar
- ktap 0.1 released
bookjovi
kerneltracing
Dear,
I'm pleased to announce that ktap release v0.1, this is the first official
release of ktap project, it is expected that this release is not fully
functional or very stable and we welcome bu
- 能保存Properties文件注释的Properties工具类
BrokenDreams
properties
今天遇到一个小需求:由于java.util.Properties读取属性文件时会忽略注释,当写回去的时候,注释都没了。恰好一个项目中的配置文件会在部署后被某个Java程序修改一下,但修改了之后注释全没了,可能会给以后的参数调整带来困难。所以要解决这个问题。
&nb
- 读《研磨设计模式》-代码笔记-外观模式-Facade
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 百度百科的定义:
* Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,
* 隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面
*
* 可简单地
- After Effects教程收集
cherishLC
After Effects
1、中文入门
http://study.163.com/course/courseMain.htm?courseId=730009
2、videocopilot英文入门教程(中文字幕)
http://www.youku.com/playlist_show/id_17893193.html
英文原址:
http://www.videocopilot.net/basic/
素
- Linux Apache 安装过程
crabdave
apache
Linux Apache 安装过程
下载新版本:
apr-1.4.2.tar.gz(下载网站:http://apr.apache.org/download.cgi)
apr-util-1.3.9.tar.gz(下载网站:http://apr.apache.org/download.cgi)
httpd-2.2.15.tar.gz(下载网站:http://httpd.apac
- Shell学习 之 变量赋值和引用
daizj
shell变量引用赋值
本文转自:http://www.cnblogs.com/papam/articles/1548679.html
Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)
中间不能有空格,可以使用下划线(_)
不能使用标点符号
不能使用bash里的关键字(可用help命令查看保留关键字)
需要给变量赋值时,可以这么写:
- Java SE 第一讲(Java SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行)
dcj3sjt126com
javajdk
Java SE 第一讲:
Java SE:Java Standard Edition
Java ME: Java Mobile Edition
Java EE:Java Enterprise Edition
Java是由Sun公司推出的(今年初被Oracle公司收购)。
收购价格:74亿美金
J2SE、J2ME、J2EE
JDK:Java Development
- YII给用户登录加上验证码
dcj3sjt126com
yii
1、在SiteController中添加如下代码:
/**
* Declares class-based actions.
*/
public function actions() {
return array(
// captcha action renders the CAPTCHA image displ
- Lucene使用说明
dyy_gusi
Lucenesearch分词器
Lucene使用说明
1、lucene简介
1.1、什么是lucene
Lucene是一个全文搜索框架,而不是应用产品。因此它并不像baidu或者googleDesktop那种拿来就能用,它只是提供了一种工具让你能实现这些产品和功能。
1.2、lucene能做什么
要回答这个问题,先要了解lucene的本质。实际
- 学习编程并不难,做到以下几点即可!
gcq511120594
数据结构编程算法
不论你是想自己设计游戏,还是开发iPhone或安卓手机上的应用,还是仅仅为了娱乐,学习编程语言都是一条必经之路。编程语言种类繁多,用途各 异,然而一旦掌握其中之一,其他的也就迎刃而解。作为初学者,你可能要先从Java或HTML开始学,一旦掌握了一门编程语言,你就发挥无穷的想象,开发 各种神奇的软件啦。
1、确定目标
学习编程语言既充满乐趣,又充满挑战。有些花费多年时间学习一门编程语言的大学生到
- Java面试十问之三:Java与C++内存回收机制的差别
HNUlanwei
javaC++finalize()堆栈内存回收
大家知道, Java 除了那 8 种基本类型以外,其他都是对象类型(又称为引用类型)的数据。 JVM 会把程序创建的对象存放在堆空间中,那什么又是堆空间呢?其实,堆( Heap)是一个运行时的数据存储区,从它可以分配大小各异的空间。一般,运行时的数据存储区有堆( Heap)和堆栈( Stack),所以要先看它们里面可以分配哪些类型的对象实体,然后才知道如何均衡使用这两种存储区。一般来说,栈中存放的
- 第二章 Nginx+Lua开发入门
jinnianshilongnian
nginxlua
Nginx入门
本文目的是学习Nginx+Lua开发,对于Nginx基本知识可以参考如下文章:
nginx启动、关闭、重启
http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.html
agentzh 的 Nginx 教程
http://openresty.org/download/agentzh-nginx-tutor
- MongoDB windows安装 基本命令
liyonghui160com
windows安装
安装目录:
D:\MongoDB\
新建目录
D:\MongoDB\data\db
4.启动进城:
cd D:\MongoDB\bin
mongod -dbpath D:\MongoDB\data\db
&n
- Linux下通过源码编译安装程序
pda158
linux
一、程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在linux下用man命令查看的命令的文档
二、linux下程序的存放目录 linux程序的存放目录大致有三个地方: /etc, /b
- WEB开发编程的职业生涯4个阶段
shw3588
编程Web工作生活
觉得自己什么都会
2007年从学校毕业,凭借自己原创的ASP毕业设计,以为自己很厉害似的,信心满满去东莞找工作,找面试成功率确实很高,只是工资不高,但依旧无法磨灭那过分的自信,那时候什么考勤系统、什么OA系统、什么ERP,什么都觉得有信心,这样的生涯大概持续了约一年。
根本不是自己想的那样
2008年开始接触很多工作相关的东西,发现太多东西自己根本不会,都需要去学,不管是asp还是js,
- 遭遇jsonp同域下变作post请求的坑
vb2005xu
jsonp同域post
今天迁移一个站点时遇到一个坑爹问题,同一个jsonp接口在跨域时都能调用成功,但是在同域下调用虽然成功,但是数据却有问题. 此处贴出我的后端代码片段
$mi_id = htmlspecialchars(trim($_GET['mi_id ']));
$mi_cv = htmlspecialchars(trim($_GET['mi_cv ']));
贴出我前端代码片段:
$.aj