最近几乎所有的web应用里面存在用户上传文件的需求,
可能是一个个性的头像,一个要卖的商品图片或者一些分类的文档。
在过去的一些年里,我们几乎都在用carrierwave或者paperclip去处理Rails的上传,现在在5.2版本里面我们有另外一种方式:ActiveStorage。
什么是Active Storage?
来自他的说明文档:
Active Storage 让上传更简单,通过云服务应用文件如:Amazon S3, Google Cloud Storage or Microsoft Azure Storage,而且attach这些文件到ActiveRecords。支持一个主要服务和镜像在别的服务redundancy,他也提供磁盘服务for testing或者本地开发,但是他重点在于云存储。
ActiveStorage 是一个帮助你处理文件上传的引擎,in yourRailsApps in a very straightforward and easy way.
Set it up
让我们来创建一个rails app示例,我现在假设你已经安装了rails5.2.
rails new catalog
在你开始使用ActiveStorage前,你需要一个数据库表,运行下面的命令安装数据库迁移:
bin/rails active_storage:install
现在你创建产品model通过titlle,然后运行所有的migrations
```
bin/rails generate scaffold products title:string
bin/rails db:migrate
```
附加一个文件到model
现在,我们假设我们每个 Product对象都有一个picture。我们通过has_one_attached 方法去定义这个关系。
class Product < AppicationRecord
has_one_attached :picture
end
我们现在需要在Product定义一个字段,用户能够去指定这个要上传的文件。编辑app/views/products/_form.html.erb找到field定义位置,增加下面的代码:
<%=form.lavel :title >
<%= form.text_field :title %>
<%= form.label :picture %>
<%= form.file_field :picture %>
<%= form.submit %>
还需要在ProductController里面增加‘picture'到运行的参数。
def product_params
params.require(:product).permit(:title, :picture)
end
现在如果你启动服务,导航到/products, 点击’新增‘,输入标题和选择一个图片,你会在development.log里面看到通知:INSERT statement to the active_storate_blobs 表。
找到一些相识的日志如:
ActiveStorage::Attachment Create(0.3ms) INSERT INTO "active_Storage_attachments"("name","record_type","blob_id", "created_at") VALUES(?,?,?,?)[["name","picture"]["record_type", "Product"],["record_id", 4],{"bolb_id", 2],["created_at", "2018......."]]
显示附件
你可以通过调用url_for helper 返回这个附件的url,在我们的案例中在上传完成后显示。编辑app/views/products/index.html.erb,增加下面代码:
你的scaffold会在你上传后显示这个图片。
不同的Storage Stragegies
当你在开发环境侠士,你想保持上传文件在你本地磁盘,但是当你发布时你想使用第三方服务去存储他们,比如Amaon S3,Azure Storage Service 或者Google Cloud Storage。
使用ActiveStorage处理这个非常方便。
在config/storage.yml里面声明不同的环境存储配置。比如:local环境声明’disk‘,生产环境’amazon'
local:
service: Disk
root: <%= Rails.root.join("storage")%>
amazon:
service: S3
access_key_id: AMAZONE KEY
secret_access_key: AMAZON SECRET KEY
然后,在对应的config/environments/*.rb文件里面知道storage来使用。
比如:development.rb
config.active_storate.service = :local
production.rb
config.active_storage.service = :amazon
说明:你可能需要包含额外的gem包,在Gemfile里面,要使用Amazon S3你需要包含aws-sdk-s3
gem "aws-sdk-s3", require: false
更多的功能特点
ActiveStorage还有很多功能,参考官方文档。
你可能感兴趣的:(Rails5.2 ActiveStorage Step by Step)
- Java | 多线程经典问题 - 售票
Ada54
一、售票需求1)同一个票池2)多个窗口卖票,不能出售同一张票二、售票问题代码实现(线程与进程小总结,请戳:Java|线程和进程,创建线程)step1:定义SaleWindow类实现Runnable接口,覆盖run方法step2:实例化SaleWindow对象,创建Thread对象,将SaleWindow作为参数传给Thread类的构造函数,然后通过Thread.start()方法启动线程step3
- 小架构step系列25:错误码
秋千码途
架构java
1概述一个系统中,可能产生各种各样的错误,对这些错误进行编码。当错误发生时,通过这个错误码就有可能快速判断是什么错误,不一定需要查看代码就可以进行处理,提高问题处理效率。有了统一的错误码,还可以标准化错误信息,方便把错误信息纳入文档管理和对错误信息进行国际化等。没有错误码的管理,开发人员就会按自己的理解处理这些错误。有些直接把堆栈直接反馈到前端页面上,使用看不懂这些信息体验很差,也暴露了堆栈信息有
- 基于监听和基于回调的事件处理机制
下雨天不带伞boy
基于监听的事件处理机制流程模型图文字描述:事件监听机制中由事件源,事件,事件监听器三类对象组成处理流程如下:Step1:为某个事件源(组件)设置一个监听器,用于监听用户操作Step2:用户的操作,触发了事件源的监听器Step3:生成了对应的事件对象Step4:将这个事件源对象作为参数传给事件监听器step5:事件监听器对事件对象进行判断,执行对应的事件处理器(对应事件的处理方法)基于回调的事件处理
- 2018NBA总冠军金州勇士队纸模欣赏
免贵姓虾
分享一组来自韩国设计师EireneSong的纸模设计。EireneSong是一名纸模艺术家、创客和品牌咨询师。/**以下为译文**/献给金州勇士队的粉丝们。跟其他纸模不同,这些纸模的关节都是可以动的。Step13D建模为每个球员定制的脸和身子画出轮廓3D建模Step2制作蓝图用电脑软件建一个纸模蓝图Step3关节点测试在模型中测试关节点的运动3D模型中的关节点运动Step4绘画在纸模原型上手绘再用
- K8S 1.22.1集群快速搭建
sxxs001
#K8Sdockerk8s
硬件环境准备腾讯云购买CVM3台【集群最小规模】https://buy.cloud.tencent.com/cvm?tab=custom&step=1&devPayMode=monthly®ionId=33CVM1:竞价实例、南京、南京一区、标准型S5\2C4G\0.09元/小时;带宽0.80元/GBCVM2、3;除带宽外,其他一致操作系统CentOSx648.2镜像新建安全组「打开所有端口
- 四个小型,开源数据库(sqlite,mysql,redis,mongodb)
半斗烟草
python数据库数据库
前言sqlite,mysql,redis,mongodb四个数据认识笔记四个数据库的详细介绍,请看博客:https://www.cnblogs.com/pungchur/p/14086915.html一、四个数据的安装ubuntuapt更换国内源:step1:vi/etc/apt/sources.list,内容:https://www.cnblogs.com/dream4567/p/9690850
- Day 61:电台日
钱二姐
17-Stephanie百日生涯营DAY27】电台日。小时候没人听我们倾诉时,我们回对着树洞说话。后来科技发达了,竟然有漂流瓶的服务,就是将自己的烦恼通过电子邮件的形式,随意漂流出去。有时很幸运,我们会遇到好心人,捡起我们的愿望瓶子/烦恼瓶子,为我们答疑解惑/分享喜怒哀乐。再后来,科技又进步了!大家可以创建自己的电台进行生活体验的分享。所以我们邀请大家去喜马拉雅/荔枝平台去创建自己的小电台,通过声
- KiCad 与 CircuitMaker 使用方法分享:从零开始学电子设计
Hy行者勇哥
#硬件知识物联网嵌入式硬件
摘要本文档专为电子设计新手打造,详细介绍了两款主流免费电子设计自动化(EDA)软件——KiCad和CircuitMaker的使用方法。内容涵盖软件安装、项目创建、原理图绘制、PCB布局及生产文件导出等完整流程,通过step-by-step操作步骤和实用技巧,帮助零基础用户快速掌握电子电路设计的基本技能,适用于单片机、嵌入式系统等小型电子项目的开发。一、软件简介与适用场景1.KiCad特点:完全开源
- Complete Guide to Integrating Live Chat Support on Your Website
adminwolf
个人开发
Integratinglivechatfunctionalityintoyourwebsiteisapowerfulwaytoenhanceuserexperienceanddrivebusinessconversions.Thisguideprovidesstep-by-stepinstructionsonhowtoseamlesslyembedanonlineconsultationfeatu
- PyTorch Lightning(PL)通过约定的生命周期方法自动管理训练流程。
小香猪6688
pytorch人工智能python
一、PyTorchLightning的“隐形流程”PL是一个基于PyTorch的轻量级训练框架,它通过约定优于配置的原则,定义了一系列生命周期钩子方法(如training_step、validation_step、configure_optimizers等)。当你调用trainer.fit(model)时,PL会自动按顺序调用这些方法,形成一个“隐形的主流程”。关键生命周期方法(按调用顺序):初始
- 顶层设计:支持单元化、灰度化的应用架构
一、顶层目标业务连续性:任何单元故障不影响整体弹性伸缩:根据业务流量横向扩展灵活灰度:任何发布都可逐步平滑上线成本可控:单元化带来的资源冗余最小二、核心理念设计目标核心理念单元化垂直拆分,分而治之,地域/业务维度隔离灰度化流量切分,功能开关,逐步发布三、设计步骤Step1.顶层架构分层设计1.接入层(Gateway/APIGateway)支持单元路由与灰度路由负载均衡+灰度规则(按用户ID、流量比
- helm charts_如何使用Helm Charts在Kubernetes上部署Kafka Connect
weixin_26737625
helmchartsByAmitYadav,Sr.Engineer,DevOpsatIgniteSolutionsIgniteSolutions的DevOps高级工程师AmitYadavHere’sourstep-by-stephow-toguidetodeployingKafkaConnectonKubernetesforconnectingKafkatoexternalsystems.这是我们
- Jenkins集成Gitlab流水线
大唐雷恋
参考这篇文章就够了https://www.zxblinux.com/archives/665另外,备注下流水线的配置:pipeline{agentanystages{stage('GitPull'){steps{echo'Updatesourcefromgitlab...'checkout([$class:'GitSCM',branches:[[name:'*/develop']],doGener
- Android Room使用方法与底层原理详解
你过来啊你
androidroom
Room是一个强大的SQLite对象映射库,旨在提供更健壮、更简洁、更符合现代开发模式的数据库访问方式。核心价值:消除大量样板代码,提供编译时SQL验证,强制结构化数据访问,并流畅集成LiveData、Flow和RxJava以实现响应式UI。一、使用流程(Step-by-StepWorkflow)Room的使用遵循一个清晰的结构化流程:添加依赖://build.gradle(Module)depe
- 小架构step系列19:请求和响应
秋千码途
架构
1概述作为Web程序,通用形式是发起HTTP请求并获取返回的结果,在这个过程中,需要把请求映射到代码的接口上,提供这种接口的类一般称为Controller,也就是需要把请求映射到Controller的接口方法上,把请求的参数映射到接口的参数中,并从接口返回接口处理的结果。在后端渲染页面的场景中,返回的结果需要处理为视图View。而现在更普遍的是前后端分离,返回的结果一般处理为JSON格式的数据,前
- 25.k个一组翻转链表
qq_46091746
链表数据结构
classSolution{public:ListNode*reverseKGroup(ListNode*head,intk){ListNode*dummy=newListNode(0);dummy->next=head;ListNode*tmp=dummy->next;intstep=0;//计数,用来找出首结点和尾结点ListNode*startK=nullptr;//k个一组链表中的头结点L
- How to install and setup PostgreSQL on Ubuntu?
1.InstallationStepsforPostgreSQLonUbuntu1.1UpdatethePackageListOpenaterminalandrunthefollowingcommandtoensureyourpackagelistisup-to-date:sudoaptupdate1.2InstallPostgreSQLUsethefollowingcommandtoinstal
- set up RAGFlow on your Mac
一周一志程序员
前沿技术与趋势AIGC
个人思考:这些仅仅是工具,和人的思维实际还是有很大差距。可能是我认知片面,你需要投喂大量的内容给它,它自己其实并不会思考,只是从它的认知里告诉它他知道的东西。举个不太巧当的例子,和以往的方式恰恰相反,以往都是先有内容再吸引流量,而现在是现有架子再往里填充内容。架子好找,内容难求。TosetupRAGFlowonyourMac,followthesegeneralsteps:Prerequisite
- DB restore point and datagurad
weixin_33836223
数据库c/c++
########12.5.1FlashingBackaPhysicalStandbyDatabasetoaSpecificPoint-in-TimeThefollowingstepsdescribehowtoavoidre-creatingaphysicalstandbydatabaseafteryouissuedtheOPENRESETLOGSstatementontheprimarydatab
- ASM 中添加 删除磁盘
jnrjian
数据库oracle
ThepresentdocumentexplainsindetailtheexactstepstomigrateASMdiskgroups(usingASMLIBdevices)fromoneSAN/Disk-Array/DAS/etc.toanotherSAN/Disk-Array/DAS/etc.withoutadowntime.Thisprocedurewillalsoworkfordisk
- SIMATIC Step 7授权书的含义与应用
本文还有配套的精品资源,点击获取简介:Step7是西门子用于PLC编程的专业软件,适用于多种控制器系列,如S7-300/400和S7-1200/1500。授权书是用户合法使用该软件的证明,包含序列号或激活码,确保合法下载、安装和更新。它支持多种编程语言,符合IEC61131-3标准,并与多种自动化组件集成。此外,Step7V5.4版本可能表示软件的某个特定版本,包含新特性和性能优化。用户可以通过授
- Dify丝滑云或本地docker部署步骤 适用Linux & macOS
neon98
大模型前端docker容器aimacoslinux人工智能
服务器必须有超过4GB的内存!!!Step1:gitclonegitclonehttps://githubfast.com/langgenius/dify.git//从GitHub服务器直接克隆可能会失败。其他GitHub镜像也可以。Step2:docker登录dockerloginghcr.io-u[yourusername]-p[yourGitHubaccesstoken]//此命令用自己的的
- 8分钟50项大奖,中国动画上天了
Sir电影
2018,是中国人首次进行太空行走的十周年。十年前,神舟七号出征太空,让中国成了世上第三个实现太空出舱的国家。十年后,也有这么一个“中国人出征太空”的故事。它有机会让中国动画冲进奥斯卡——《冲破天际》onesmallstep这部不到八分钟的短片,是太崆动漫(TAIKOSTUDIOS)自去年成立以来的首个项目。描述了一个对太空无限着迷的中国小女孩褚璐娜,在父亲激励下经过一系列挫折终于成为宇航员的故事
- 【学生成绩管理系统----C语言】
还在为期末程序设计而烦恼吗,不要担心,大师帮你安利一波完整的的管理系统代码,对你有帮助记得加关注噢!文章目录一、学生成绩管理系统是什么?二、信息管理的七个模块1.Stepone2.StepTwo3.StepThree4.Stepfour5.Stepfive6.StepSix7.Next总结一、学生成绩管理系统是什么?学生信息管理系统能够方便地查询和变更学生的基本数据(例如增删改查),节省大量工作时
- D064+1组宁静致远+《高效能人士的七个习惯》读书笔记
宁静致远_dcc6
本周阅读书目《高效能人士的七个习惯》,作者史蒂芬.柯维。史蒂芬・柯维(StephenR.Covey)哈佛大学企业管理硕士,杨百翰大学博士。柯维博士曾被《时代》杂志誉为“人类潜能的导师”,并入选为全美二十五位最有影响力的人物之一。在领导理论,家庭与人际关系,个人管理等领域久负盛名。本书自出书以来,高居美国畅销书排行榜长达七年,在全球七十个国家以二十八种语言发行共超过一亿册。最喜欢的也是作者在家庭与人
- 深入探讨DICOM医学影像中的MPPS服务及其具体实现
猿享天开
DICOM医学影像专业知识精讲DICOM医学影象PACSMPPS
深入探讨DICOM医学影像中的MPPS服务及其具体实现1.引言在医疗影像的管理和传输过程中,DICOM(数字影像和通信医学)标准发挥着至关重要的作用。除了DICOM影像的存储和传输(如影像存储SCP和影像传输SCP),DICOM还定义了其他一系列服务以支持医疗影像的完整管理。其中,**MPPS(ModalityPerformedProcedureStep)**服务是医疗影像工作流中的一个重要环节,
- 小架构step系列18:工具
秋千码途
架构
1概述在写代码的时候,有很多通用的、与业务无关逻辑,这些一般写成工具类方法。这些工具类方法慢慢地被积累起来,变成了开源包,可以直接使用开源包,而不是自己再花时间来重复造这些轮子。这些工具类的开源包比较多,公司如果没有控制的话,不同的开发人员就会选自己熟悉的开源包,甚至都拿来练练手。这样的后果就是,在一个工程内使用了五花八门的工具类包,维护代码的时候不好维护,如果要升级一些框架包或者扫描漏洞,发现很
- 头歌实践Java项目开发入门实战第三阶段【Java高级特性】
Y_03
头歌实践题java开发语言
本文来自头歌实践平台的Java项目实战入门【只有编程题】,如需访问其他阶段的文章,请自行阅读主页其他文章制作不易,请留下一个免费的点赞以及关注吧!!!一、Java高级特性-IO流2、字节流-输入输出packagestep2;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importja
- 英文圆体字练习 2019.2.22
许如清呐
笔尖:Hunt22B墨水:Walnut信笔涂鸦,还请多多指教《FriendsfromPoland》FriendsfromPoland《波兰来客》Whenwewereyoung,therewasdreams,那时我们有梦,aboutbeautifulsentence,关于文学,aboutromanticlove,关于爱情,aboutsteppingoneverycorneroftheworld.关于
- How to SSH into your Ubuntu machine from macOS as superuser
captainOO7
Networkingsshubuntumacos
ToSSHintoyourUbuntumachinefrommacOSassuperuser,you’llfirstconnectasaregularuser,thenelevateprivilegesonceloggedin.Here'showtodoitstepbystep:Step1:EnableSSHonUbuntuMakesuretheSSHserverisinstalledandrun
- html
周华华
html
js 1,数组的排列 var arr=[1,4,234,43,52,]; for(var x=0;x<arr.length;x++){ for(var y=x-1;y<arr.length;y++){ if(arr[x]<arr[y]){ &
- 【Struts2 四】Struts2拦截器
bit1129
struts2拦截器
Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。 Struts2中自定义拦截器的步骤是:
- make:cc 命令未找到解决方法
daizj
linux命令未知make cc
安装rz sz程序时,报下面错误: [root@slave2 src]# make posix cc -O -DPOSIX -DMD=2 rz.c -o rz make: cc:命令未找到 make: *** [posix] 错误 127 系统:centos 6.6 环境:虚拟机 错误原因:系统未安装gcc,这个是由于在安
- Oracle之Job应用
周凡杨
oracle job
最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。 一:查看相关job信息 1、相关视图 dba_jobs all_jobs user_jobs dba_jobs_running 包含正在运行
- 多线程机制
朱辉辉33
多线程
转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx 程序、进程和线程: 程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的
- web报表工具FineReport使用中遇到的常见报错及解决办法(一)
老A不折腾
web报表finereportjava报表报表工具
FineReport使用中遇到的常见报错及解决办法(一) 这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。 出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。 1、address pool is full: 含义:地址池满,连接数超过并发数上
- mysql rpm安装后没有my.cnf
林鹤霄
没有my.cnf
Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的, 至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法, 第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动, 第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r
- Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题
aigo
root
原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/ Step 4: Run ADB command from your PC On the PC, you need install Amazon Fire ADB driver and instal
- javascript 中var提升的典型实例
alxw4616
JavaScript
// 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧 myname = 'global'; var fn = function () { console.log(myname); // undefined var myname = 'local'; console.log(myname); // local }; fn() // 上述代码实际上等同于以下代码 m
- 定时器和获取时间的使用
百合不是茶
时间的转换定时器
定时器:定时创建任务在游戏设计的时候用的比较多 Timer();定时器 TImerTask();Timer的子类 由 Timer 安排为一次执行或重复执行的任务。 定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定
- JDK1.5 Queue
bijian1013
javathreadjava多线程Queue
JDK1.5 Queue LinkedList: LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方
- http认证原理和https
bijian1013
httphttps
一.基础介绍 在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。 Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后
- 【Java范型五】范型继承
bit1129
java
定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2 package com.tom.lang.generics; public abstract class SuperGenerics<T1, T2> { private T1 t1; private T2 t2; public abstract void doIt(T
- 【Nginx六】nginx.conf常用指令(Directive)
bit1129
Directive
1. worker_processes 8; 表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行 nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process
- lua 遍历Header头部
ronin47
lua header 遍历
local headers = ngx.req.get_headers() ngx.say("headers begin", "<br/>") ngx.say("Host : ", he
- java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。
bylijinnan
java
import java.util.Arrays; public class MinSumASumB { /** * Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序. * * 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。 * 例如: * int[] a = {100,99,98,1,2,3
- redis
开窍的石头
redis
在redis的redis.conf配置文件中找到# requirepass foobared 把它替换成requirepass 12356789 后边的12356789就是你的密码 打开redis客户端输入config get requirepass 返回 redis 127.0.0.1:6379> config get requirepass 1) "require
- [JAVA图像与图形]现有的GPU架构支持JAVA语言吗?
comsci
java语言
无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情
- 安装ubuntu14.04登录后花屏了怎么办
cuiyadll
ubuntu
这个情况,一般属于显卡驱动问题。 可以先尝试安装显卡的官方闭源驱动。 按键盘三个键:CTRL + ALT + F1 进入终端,输入用户名和密码登录终端: 安装amd的显卡驱动 sudo apt-get install fglrx 安装nvidia显卡驱动 sudo ap
- SSL 与 数字证书 的基本概念和工作原理
darrenzhu
加密ssl证书密钥签名
SSL 与 数字证书 的基本概念和工作原理 http://www.linuxde.net/2012/03/8301.html SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。 http://www.ibm.com/developerworks/cn/webspher
- Ubuntu设置ip的步骤
dcj3sjt126com
ubuntu
在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。 转载不是错: Ubuntu命令行修改网络配置方法 /etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载. 1. 以D
- php包管理工具推荐
dcj3sjt126com
PHPComposer
http://www.phpcomposer.com/ Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。 中文文档 入门指南 下载 安装包列表 Composer 中国镜像
- Gson使用四(TypeAdapter)
eksliang
jsongsonGson自定义转换器gsonTypeAdapter
转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述 Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例 例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都
- JQM控件之Navbar和Tabs
gundumw100
htmlxmlcss
在JQM中使用导航栏Navbar是简单的。 只需要将data-role="navbar"赋给div即可: <div data-role="navbar"> <ul> <li><a href="#" class="ui-btn-active&qu
- 利用归并排序算法对大文件进行排序
iwindyforest
java归并排序大文件分治法Merge sort
归并排序算法介绍,请参照Wikipeida zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F 基本思想: 大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数 低于限制行数的子文件直接排序 两个排序好的子文件归并到父文件 直到最后所有排序好的父文件归并到输入
- iOS UIWebView URL拦截
啸笑天
UIWebView
本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有
- 索引的碎片整理SQL语句
macroli
sql
SET NOCOUNT ON DECLARE @tablename VARCHAR (128) DECLARE @execstr VARCHAR (255) DECLARE @objectid INT DECLARE @indexid INT DECLARE @frag DECIMAL DECLARE @maxfrag DECIMAL --设置最大允许的碎片数量,超过则对索引进行碎片
- Angularjs同步操作http请求with $promise
qiaolevip
每天进步一点点学习永无止境AngularJS纵观千象
// Define a factory app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) { var deferred = $q.defer(); AccountService.getProfile().then(function(res) {
- hibernate联合查询问题
sxj19881213
sqlHibernateHQL联合查询
最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。 针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2) 1 几个常识: (1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。 (2)hql的默认查询策略,在进行联合查询时,会产
- struts2.xml
wuai
struts
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache