每天都会有很多新语言、数据库等的炒作。但是究竟实际在使用的技术有哪些?好的初创企业使用的技术会不会跟不那么好的那些所使用的技术有所不同呢? AngelList 的自我报告可以为我们揭示部分答案。从里面你可以发现,Robinhood 用 Python、Django 和 iOS;Secret 用 Java、Go、Python、JavaScript、HTML5、CSS、iOS 及 Android 等。 AngelList 把这些企业分成 3 档,一档是“过得去”,其使用的技术用蓝色表示;一档是“好”,用红色表示;最后一档是“极好”,用橙色表示。然后分析了各档公司在编程语言、前端技术、 数据库 / 存储 / 缓存、移动技术、基础设施、DevOps、API 集成、先进技术、大数据软件等方面的使用情况。从中可以看出,各类技术的总体趋势是: 最热门编程语言:Ruby on Rails 最热门前端技术:JavaScript/Node.js 最热门存储技术:MySQL、MongoDB 最热门移动技术:iOS 最热门基础设施:AWS 最热门DevOps: Chef 最热门搜索技术:Elastic search 最热门API集成:Facebook API 最热门先进技术:大数据 最热门大数据软件:Hadoop 编程语言 JavaScript/Node.js、Ruby/Ruby on Rails、Java 是各类公司都喜欢使用的技术;PHP 和 Python 则在好中差三类公司间形成反差:越“好”的公司越喜欢用 Python,越“差”的公司越喜欢用 PHP。 前端技术 除了最火的 Ruby on Rails 技术以外,HTML5 和 CSS 技术也是被大量采用的技术。而 Bootstrap 这个框架则是越好的公司越少采用。 数据库/存储/缓存 MySQL、MongoDB、Postgres SQL 统治了数据库领域,相比之下,SQL Server 和 Oracle 的使用则少很多。 移动技术 iOS 稍微比 Android 热门一点,而且越好的公司越多采用 iOS,WindowsMobile 由于体量太小(小 30 倍到 50 倍),所以连图都不上了。 基础设施/托管 AWS 和 Heroku 占据了统治地位,越好的公司越倾向于采用 IaaS(如 AWS)而不是 PaaS(如 Parse),也许是出于自身技术实力和更好定制调优的需要? DevOps工具 除了 Chef […]
View Details早在1979年,Bjarne Stroustrup设计了C++编程语言,并且C++很快成为了无处不在的通用系统编程语言。现在尽管有Java、Javascript、Python、Go,甚至是苹果的Swift和它竞争,但C++依然处于主导编程世界的地位。 今天在Morgan Stanley的科技访谈会上,InfoWorld的编辑和Stroustrup畅聊了很多关于C++的问题,还谈及了其他的编程语言,包括Google的Go语言和苹果的Swift语言。以下是我们的访谈记录。 InfoWorld: 您是怎么看C++的未来的?现在有很多流行的脚本语言,像Python和Javascript,当然还有很受欢迎的Java,甚至是Google的Go语言,C++如何从这么多编程语言中存活下来,并且发展壮大? Stroustrup: 这是个很棒的问题。在这 20年时间里,人们一直在预测C++将会灭亡,但是很高兴的是它一直在成长和壮大。如果你进入到嵌入式领域,如果你想做一些复杂的图像处理,如果你需要实 现一些微电子应用,如果你要开发一些金融管理系统,那么C++是你的首选。也许你很少能看到C++的身影,但是在那些应用的底层,C++依然是撑起整个应 用的顶梁柱。比如Google、Amazon、搜索引擎等那些需要高性能的地方,C++就成了不可或缺的重要角色了。 InfoWorld: Google的Go语言越来越被受到关注,您对Go语言的前景怎么看? Stroustrup: 当然这些编程语言可以非常优雅地实现一些功能,但是这些编程语言关注的是如何让写代码变得便捷和优雅,却损失不少性能。当然,这些编程语言所做的贡献我们也是有目共睹的。 InfoWorld: 一些脚本语言的宗旨是解放程序员的双手,那么C++是否也会逐渐倾向于这个目标? Stroustrup: Oh,当然了。C++主 要是为一些相当底层核心的应用设计的,它也经常会和其他的脚本语言结合使用。一开始的时候,我是用C++来实现任何的应用,然后我就在Unix上使用 shell作为脚本语言设计一些底层应用。C++涵盖了以下优秀的特性:高性能、易伸缩、占用空间小、占用资源少等等。 InfoWorld: 苹果在今年6月份发布了Swift语言,您是否认为由于苹果公司的支持,Swift将越来越受到开发者的关注? Stroustrup: 我认为是的,之前他们关注Objective-C,这回Swift真正进入了这些开发者的领域了。 InfoWorld: C++面临两大挑战:一方面要满足开发者实现高性能、可扩展、搞可靠性的应用程序,另一方面又需要能够帮助开发者实现可维护的代码。关于这两个问题您怎么看? Stroustrup: 我正要解释这两个问题,第一个问题是要尽可能的抽象和更高效地利用硬件资源,而后者则需要能尽可能简化代码的编写过程,从C++ 11到C++ 14,已经具备这样的兼顾能力了。 今年我们会发布一个新的C++版本,它参考了C++ 14的标准。当你在研发大型的产品时,也许C++ 11在某些方面已经无法满足你的需求,但当出现C++ 14时,情况就会完全改变了,C++总是在不停地进步着。 InfoWorld: 关于程序的安全性问题,您怎么看?程序员是否需要关注所有的安全问题?C++是否比其他编程语言安全呢? Stroustrup: 我非常热衷于解决硬件的安全问题。在编程语言方面,如果你想编写优秀的程序,那么你的代码一定要确保类型安全。你可以在C++中实现这一要求。不要总是围绕着一些低效的功能转,总的来说,安全问题是系统问题。 InfoWorld: 您是否还要探讨关于C++或者软件开发的其他任何问题? Stroustrup: 我们的目标是让软件开发更加专业化。我们的社会中很多事情都是不能被打破的,其中大部分都需要依赖软件。作为开发者,我们需要整体考虑到我们的系统,编程语言和开发工具只是其中的一部分,我们需要探究如何培养开发者,以及如何将重点放在程序的可靠性上。 原文出处: infoworld 译文出处:codeceo from:http://www.oschina.net/news/54556/stroustrup-why-the-35-year-old-c-still-dominates-real-dev
View Details几周前我在不同的地方读到了有关C#6的一些新特性。我就决定把它们都收集到一起,如果你还没有读过,就可以一次性把它们都过一遍。它们中的一些可能不会如预期那样神奇,但那也只是目前的更新。 你可以通过下载VS2014或者安装这里针对visual studio2013的Roslyn包来获取它们。 那么让我们看看吧: 1. $标识符 $的作用是简化字符串索引。它与C#中那些内部使用正则表达式匹配实现索引的动态特性不同。示例如下: ? 1 2 3 4 5 6 7 8 9 10 11 var col = new Dictionary<string, string>() { $first = "Hassan" }; //Assign value to member //the old way: col.$first = "Hassan"; //the new way: col["first"] = "Hassan"; 2. 异常过滤器 VB编译器中早已支持异常过滤器,现在C#也支持了。异常过滤器可以让开发人员针对某一条件创建一个catch块。只有当条件满足时catch块中的代码才会执行,这是我最喜欢的特性之一,示例如下: ? 1 2 3 4 5 try { throw new Exception("Me"); } catch (Exception ex) if (ex.Message == "You") 3. catch和finally块中await关键字 据我所知,没有人知道C# 5中catch和finally代码块内await关键字不可用的原因,无论何种写法它都是不可用的。这点很好因为开发人员经常想查看I/O操作日志,为了将捕捉到的异常信息记录到日志中,此时需要异步进行。 ? 1 2 3 4 5 6 7 8 try { DoSomething(); } catch (Exception) { await LogService.LogAsync(ex); } 4. 声明表达式 这个特性允许开发人员在表达式中定义一个变量。这点很简单但很实用。过去我用asp.net做了许多的网站,下面是我常用的代码: ? 1 2 3 long id; if (!long.TryParse(Request.QureyString["Id"], out id)) { } 优化后的代码: ? 1 2 if (!long.TryParse(Request.QureyString["Id"], out long id)) { } 这种声明方式中变量的作用域和C#使用一般方式声明变量的作用域是一样的。 5. Static的使用 这一特性允许你在一个using语句中指定一个特定的类型,此后这个类型的所有静态成员都能在后面的子句中使用了. ? 1 2 […]
View DetailsStudio Flatti Shopper Sell Anything Colorful Flat Purpose Siimple Landing page Progressus Minimal Theme via templatespicy from:http://www.oschina.net/news/54521/best-free-bootstrap-templates
View Details1.SQLiteOpenHelper SQliteOpenHelper是一个抽象类,来管理数据库的创建和版本的管理。要使用它必须实现它的nCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase, int, int)方法 onCreate:当数据库第一次被建立的时候被执行,例如创建表,初始化数据等。 onUpgrade:当数据库需要被更新的时候执行,例如删除久表,创建新表。 2.实现代码 package xqh.utils; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; public class DBHelper extends SQLiteOpenHelper { //数据库版本 private static final int VERSION = 1; //新建一个表 String sql = "create table if not exists TestUsers"+ "(id int primary key,name varchar,sex varchar)"; public DBHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } public DBHelper(Context context,String name,int version){ this(context,name,null,version); } public DBHelper(Context context,String name){ this(context,name,VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } 3.SQLite的使用 Android提供了一个名为SQLiteDatabase的类,它封装了一些操作数据库的API。使用它能实现基本的CRUD操作,通过getWritableDatabase()和getReadableDatabase()可以获取数据库实例。 4.实现代码 package xqh.sqlite; import xqh.utils.DBHelper; import android.app.Activity; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.widget.Button; import android.util.Log; import android.view.View; import android.view.View.OnClickListener;; public class TestSQLite extends Activity { Button textBtn = null; Button btnCreateDb = null; Button btnCreateTb = null; Button btnInsert = null; Button btnUpdate = null; Button btnDelete = null; DBHelper dbHelper = null; SQLiteDatabase db = null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.sqlitetest); OpenDb(); textBtn = (Button)findViewById(R.id.btnHeader); textBtn.setFocusable(true); // btnCreateDb = (Button)findViewById(R.id.btnCreateDb); // btnCreateDb.setOnClickListener(createDbListener); // // btnCreateTb = (Button)findViewById(R.id.btnCreateTb); // btnCreateTb.setOnClickListener(createTbListener); btnInsert = (Button)findViewById(R.id.btnInsert); btnInsert.setOnClickListener(insertTbListener); btnUpdate = (Button)findViewById(R.id.btnUpdate); btnUpdate.setOnClickListener(updateTbListener); btnDelete = (Button)findViewById(R.id.btnDelete); btnDelete.setOnClickListener(deleteTbListener); } public OnClickListener deleteTbListener = new OnClickListener() { public void onClick(View v) { DeleteTb(); } }; public OnClickListener updateTbListener = new OnClickListener() { public void onClick(View v) { UpdateTb(); } }; […]
View DetailsNode.js 框架可以帮助你开发出更友好的 web 应用。Node.js 框架的许多特性和功能也能开发出大型的 web 应用。下面我们来介绍 21 款最好的 Node.js 框架,帮助开发者快速开发 web 应用。 Express Total total.js 是个 web 应用框架,使用 JavaScript,HTML,CSS 和 Node.js(MVC) web 应用框架来构建 web 网站和 web 应用。 SOCKETSTREAM SOCKET KISS METEOR Meteor 是构建高质量 web 应用的开源平台,能快速的开发 web 应哟给你,无论是不是专业开发者都可以使用。 MEAN MEAN 是全功能的 JavaScript Node.js 框架,简化和加速了 web 应用开发。 SPINE KOA Koa 是 web 下一代 Node.js 框架。 WINTERSMITH wintersmith 是建立在 Node.js 基础上的灵活,简约,多平台的静态网站生成器。 SOCKETSTREME SocketStream 是 Node.js 框架,用来开发实时 web 应用。 FLATIRON Flatiron 是个适应性很强的 Node.js 框架,用来构建现代化 web 应用。 COKE COKE 是轻量级的 […]
View Details普通过程 DELIMITER // CREATE DEFINER=root@% PROCEDURE proc_insert() BEGIN insert into logs(hyname,hynumber,ip,software) values('lf4′,’nn',’127.0.0.1′,’测试'); insert into logs(hyname,hynumber,ip,software) values('lf5lf5lf5lf5lf5lf5lf5lf5lf5lf5lf5lf5lf5lf5lf5lf5lf5lf5′,’nn2′,’127.0.0.1′,’测试'); END// DELIMITER ; 带事务的过程 DELIMITER // CREATE DEFINER=root@% PROCEDURE proc_insert_tran() BEGIN DECLARE t_error INTEGER DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; START TRANSACTION; insert into logs(hyname,hynumber,ip,software) values('lf2′,’nn',’127.0.0.1′,’测试'); insert into logs(hyname,hynumber,ip,software) values('lf3lf2lf2lf2lf2lf2lf2lf2lf2lf2lf2lf2lf2lf2lf2lf2lf2lf2lf2lf2′,’nn2′,’127.0.0.1′,’测试'); IF t_error = 1 THEN ROLLBACK; ELSE COMMIT; END IF; END// DELIMITER ; 分页存储过程 DELIMITER // CREATE DEFINER=root@% PROCEDURE proc_paging( in pi_fields varchar(2000), in pi_tables text, in pi_where varchar(2000), in pi_orderby varchar(200), in pi_pageindex int, in pi_pagesize int, out […]
View Details50 Useful CSS Frameworks, Libraries and Tools of 2014: CSS Libraries for Animation: CSS Shake Magic Animations Hover.css Saffron CSS Frameworks, Libraries for Spinners & Indicators: Single Element CSS Spinners SpinKit CSS Typography Libraries & Tools: typebase.css Type settings Type Rendering Mix Sassline CSS Frameworks & UI Kits: Kindling Webplate Flexbox Grid Fluidity Cute Grids Ice Cream Zen Grids ApplePie Pure CSS Components BASSCSS Responsee II CSS Icon Creation Tools: Glyphter Perfect Icons iconizr CSS Color Tools: Colors CSS Colours Pantone Sass CSS Reference and Reading: CSS Vocabulary […]
View Details这里向你推荐一些界面非常复古怀旧的 UI 工具包,你可以用它们来开发很怀旧的界面。 Retro Jam Ui Kit by Sergey Azovskiy Vinta Dark Ui Kit by Kumaresh UI Kit by Mike Sticky UI Kit by Thomas Vintage Pixels by Digital Surgeons Vintage iOS UI Kit by Pixelkit Featherweight UI by Sarah Hunt Free UI Kit 33 Light Retro UI Retro Web Ribbons Vintage by __AuthorName__ via script-tutorials FROM:http://www.oschina.net/news/54437/vintage-and-retro-ui-kits
View Details今天看淘宝网,发现字体样式写的很不错,在三大系统上的兼容性都很不错,和大家分享一下:font:12px/1.5 tahoma,arial,’Hiragino Sans GB',\5b8b\4f53,sans-serif;
View Details