首页 文章 精选 留言 我的

精选列表

搜索[Cookie处理],共10000篇文章
优秀的个人博客,低调大师

计算广告与流处理技术综述

案例与解决方案汇总页:阿里云实时计算产品案例&解决方案汇总 1.计算广告背景 广告仍然是互联网公司的主要变现手段,其市场规模2017年已达3000亿元,据统计全球互联网市值前十的公司广告收入占比高达40%,可见其重要性。在这种情况下,与互联网广告相关的技术,我们称之为计算广告,也是最为成熟,市场规模最大的大数据应用领域。 互联网广告领域经过长期发展,分工逐渐精细化,除了各种代理商之外,还出现了ADN、SSP、ADX、DSP等各种平台,市场结构极为复杂,成为了一个巨大的生态。LUMA Partners针对北美市场绘制了一幅全景图,如下。 从经济学上看,上面复杂的市场结构可以认为是社会化大生产的产物,而广告的本质其实非常简单,无非是在合适的上下文中寻求受众与广告的匹配,追求媒体、用户和广告主的三方共赢。 2.计算广告技术架构 互联网广告从

优秀的个人博客,低调大师

JAVA时间格式处理工具类

import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public class DateUtil { /** * 默认日期格式 */ public static String DEFAULT_FORMAT = "yyyy-MM-dd"; private static final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); private static final SimpleDateFormat formatMs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss"); /** * 格式化日期 * @param date 日期对象 * @return String 日期字符串 */ public static String formatDate(Date date){ SimpleDateFormat f = new SimpleDateFormat(DEFAULT_FORMAT); String sDate = f.format(date); return sDate; } /** * 格式化日期 * @param str 日期对象 * @return String 日期字符串 */ public static Date formatDate(String str){ Date date = null; try{ SimpleDateFormat f = new SimpleDateFormat(DEFAULT_FORMAT); date = f.parse(str); }catch (Exception e){ e.printStackTrace(); } return date; } /** * 获取某年第一天日期 * @param date 账期 * @return Date */ public static String getYearFirst(String date){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, Integer.parseInt(date.substring(0, 4))); Date currYearFirst = calendar.getTime(); return formatDate(currYearFirst); } /** * 获取上年第一天日期 * @param date 账期 * @return Date */ public static String getLastYearFirst(String date){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, Integer.parseInt(date.substring(0, 4))); calendar.add(Calendar.YEAR, -1); Date currYearFirst = calendar.getTime(); return formatDate(currYearFirst); } /** * 获取某日的前一天日期 * @return Date */ public Date getDaysBefore(String dateString, int days) throws ParseException { DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); Date inputDate = dateFormat.parse(dateString); Calendar cal = Calendar.getInstance(); cal.setTime(inputDate); int dayOfYear = cal.get(Calendar.DAY_OF_YEAR); cal.set(Calendar.DAY_OF_YEAR, dayOfYear - days); return cal.getTime(); } /** * 获取某月上一个月份 * @return Date */ public Date getMonthsBefore(String dateString, int months) throws ParseException { DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); Date inputDate = dateFormat.parse(dateString); Calendar cal = Calendar.getInstance(); cal.setTime(inputDate); int monthOfYear = cal.get(Calendar.MONTH); cal.set(Calendar.MONTH, monthOfYear - months); return cal.getTime(); } /** * 获取某月第一天日期 * @return Date */ public Date getFisrtDayOfMonth(String dateString) throws ParseException { DateFormat dateFormat = new SimpleDateFormat("yyyyMM"); Date inputDate = dateFormat.parse(dateString); Calendar cal = Calendar.getInstance(); cal.setTime(inputDate); int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH); cal.set(Calendar.DAY_OF_MONTH, firstDay); return cal.getTime(); } /** * 获取某月最后一天日期 * @return Date */ public Date getLastDayOfMonth(String dateString) throws ParseException { DateFormat dateFormat = new SimpleDateFormat("yyyyMM"); Date inputDate = dateFormat.parse(dateString); Calendar cal = Calendar.getInstance(); cal.setTime(inputDate); int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); cal.set(Calendar.DAY_OF_MONTH, lastDay); return cal.getTime(); } /** * 获取最后一个月的第一天日期 * @return Date */ public static String getLastMonthFirstDay() { Calendar cal_1 = Calendar.getInstance(); cal_1.add(Calendar.MONTH, -1); cal_1.set(Calendar.DAY_OF_MONTH, 1); String firstDay = format.format(cal_1.getTime()); System.out.println("-----1------firstDay:" + firstDay); return firstDay; } /** * 获取最后一个月最后一天日期 * @return Date */ public static String getLastMonthlastDay() { Calendar cale = Calendar.getInstance(); cale.set(Calendar.DAY_OF_MONTH, 0); String lastDay = format.format(cale.getTime()); System.out.println("-----2------lastDay:" + lastDay); return lastDay; } /** * 获取当前月第一天日期 * @return Date */ public static String getCurrentMonthFirstDay() { Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, 0); c.set(Calendar.DAY_OF_MONTH, 1); String first = format.format(c.getTime()); System.out.println("===============first:" + first); return first; } /** * 获取当前月最后一天日期 * @return Date */ public static String getCurrentMonthlastDay() { Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); String last = format.format(ca.getTime()); System.out.println("===============last:" + last); return last; } /** * 获取当前年份第一天日期 * @return Date */ public static Date getCurrYearFirst() { Calendar currCal = Calendar.getInstance(); int currentYear = currCal.get(Calendar.YEAR); return getYearFirst(currentYear); } /** * 根据传入的参数获取该年的第一天 * @return Date */ public static Date getCurrYearFirst(String dateString) throws ParseException { DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date inputDate = dateFormat.parse(dateString); Calendar cal = Calendar.getInstance(); cal.setTime(inputDate); int currentYear = cal.get(Calendar.YEAR); return getYearFirst(currentYear); } /** * 根据传入的参数获取该年月 * @return Date */ public static String getMonth(String dateString) throws ParseException { DateFormat dateFormat = new SimpleDateFormat("MM"); Date inputDate = dateFormat.parse(dateString); Calendar cal = Calendar.getInstance(); cal.setTime(inputDate); return formatDate(cal.getTime()); } /** * 获取当前年份最后一天 * @return Date */ public static Date getCurrYearLast() { Calendar currCal = Calendar.getInstance(); int currentYear = currCal.get(Calendar.YEAR); return getYearLast(currentYear); } /** * 根据传入的参数获取该年 * @return Date */ public static Date getYearFirst(int year) { Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); Date currYearFirst = calendar.getTime(); return currYearFirst; } /** * 根据传入的参数获取该年 * @return Date */ public static Date getYearLast(int year) { Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); calendar.roll(Calendar.DAY_OF_YEAR, -1); Date currYearLast = calendar.getTime(); return currYearLast; } /** * 根据传入的参数获取该年月 * @return Date */ public static String getCurrentYear(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); Date date = new Date(); return sdf.format(date);} /** * 根据传入的参数获取该年月 * @return Date */ public static String getLastYear() { Calendar date = Calendar.getInstance(); date.add(Calendar.YEAR, -1); String year = String.valueOf(date.get(Calendar.YEAR)); return year; } /** * 现在时间+6个月与next_time比较 * @return */ public static String getStaleDated(){ SimpleDateFormat sdfTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss"); Date date= new Date(); Calendar cd = Calendar.getInstance(); cd.setTime(date); cd.add(Calendar.MONTH, 6); date=cd.getTime(); String stale_dated = sdfTimeStamp.format(date); return stale_dated; } /** * 获取当前时间 * @return */ public static String currentDatetime(){ SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String datetime = tempDate.format(new java.util.Date()); return datetime; } /** * 获取当前时间 * * @return */ public static String getYyMmtime() { SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM"); String datetime = tempDate.format(new java.util.Date()); return datetime; } /** * 日期计算 * @param date * @param type * @param number * @return */ public static String calculateDate(String date,String type,int number){ try{ // SimpleDateFormat sdfTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss"); SimpleDateFormat sdfTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //String create_time = sdfTimeStamp.format(new Date()); Date tmpDate = sdfTimeStamp.parse(date); Calendar cd = Calendar.getInstance(); cd.setTime(tmpDate); if(type.equals("m")){ cd.add(Calendar.MONTH, number); }else if (type.equals("d")){ cd.add(Calendar.DAY_OF_MONTH, number); }else { return "type is unknown"; } tmpDate = cd.getTime(); String dateRuslt = sdfTimeStamp.format(tmpDate); return dateRuslt; }catch(Exception ex){ return "calculate failed"; } } public static Date getDateByStr(String string){ //String string = "2016-10-24 21:59:06"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date =null; try{ date = sdf.parse(string); System.out.println(sdf.parse(string)); }catch (Exception e){ e.printStackTrace(); } return date; } public static String getStrByDate(Date date) { //String string = "2016-10-24 21:59:06"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateTime = null; try { dateTime = sdf.format(date); } catch (Exception e) { e.printStackTrace(); } return dateTime; } public static String getUpdateTime(){ //当前时间重写更新时间 SimpleDateFormat sdfTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss"); String update_time = sdfTimeStamp.format(new Date()); return update_time; } public static void main(String[] args) throws ParseException { DateUtil dateTest = new DateUtil(); // DateFormat df = new SimpleDateFormat("yyyyMMdd"); // Date before7Day = dateTest.getDaysBefore("20140301", 7); // System.out.println(df.format(before7Day)); // Date testFirstDay = dateTest.getLastDayOfMonth("201407"); // System.out.println(df.format(testFirstDay)); // Date testBeforeMonth = dateTest.getMonthsBefore("20140712", 12); // System.out.println(df.format(testBeforeMonth)); // DateFormat df2 = new SimpleDateFormat("yyyyMM"); // Date getFisrtDayOfMonth = dateTest.getFisrtDayOfMonth("201407"); // System.out.println(df2.format(getFisrtDayOfMonth)); System.out.println(getStaleDated()); // System.out.println(formatDate(getCurrYearLast()));// String stObj="2016-3-21";// String[] timeDay = stObj.split("-");// System.out.println(timeDay[1]); } }

优秀的个人博客,低调大师

Flask跨域请求的处理方法

在Flask开发RESTful后端时,前端请求会遇到跨域的问题。下面是解决方法: 使用 flask-cors库可以很容易的解决 pip install flask-cors 两种方法,一个是全局/批量的,一个是单一独立的: 安全起见,一般来说使用独立的方式会常用一些。 1.独立方式 通过给路由添加@cross_origin标识即可 from flask import Flask, jsonify from flask_cors import cross_origin @app.route('/upload', methods=['POST', 'OPTIONS']) @cross_origin() def upload(): # todo result_text = {"result": "True"} return jsonify(result_text) 2.全局方式 也很简单: from flask import Flask from flask_cors import CORS app = Flask(__name__) CORS(app) if __name__ == '__main__': app.run(host='0.0.0.0', threaded=True, debug=True) 这样所有的路由都会支持跨域了,新版本好像不好用了,ke'yi'shi'shi 3.批量方式 还有根据路由正则来批量控制等方式,更加灵活,可以查阅官方文档。 from flask import Flask from flask_cors import CORS app = Flask(__name__) CORS(app, resources={r"/api/*": {"origins": "*"}}) if __name__ == '__main__': app.run(host='0.0.0.0', threaded=True, debug=True)

优秀的个人博客,低调大师

Java 异常处理 之 运行期异常

http://www.verejava.com/?id=16992970828178 package com.exception; public class TestException { public static void main(String[] args) { //对运行期异常, 我们可以不捕获, 也可以捕获 int[] scores = { 60, 70, 80 }; // java.lang.ArrayIndexOutOfBoundsException: 数组越界 try { //试一试 System.out.println(scores[3]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("发生了数组越界异常"); } } } http://www.verejava.com/?id=16992970828178

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册