- 解决 前端 number 与后端 Long 数据表示范围不精确的问题
confident3
前端
packagecom.me.meterdemo.config;importcom.fasterxml.jackson.databind.ObjectMapper;importcom.fasterxml.jackson.databind.module.SimpleModule;importcom.fasterxml.jackson.databind.ser.std.ToStringSerialize
- java菜鸟教程学习(完整版)
javapython
java实例一.Java字符串1.Java实例–字符串比较2.Java实例-查找字符串最后一次出现的位置3.Java实例-删除字符串中的一个字符4.Java实例-字符串替换5.Java实例-字符串反转6.Java实例-字符串查找7.Java实例-字符串分割8.Java实例-字符串分割(StringTokenizer)9.Java实例-字符串小写转大写10.Java实例-测试两个字符串区域是否相等1
- 包含32英文特殊字符,正则表达式验证
moqiyong666
正则表达式
//JavaStringpattern=".*[~!@#$%^&*()_+|\?\`\-\=\[\]\\;\'\,\.\/])/;alert(pattern.test("~"));
- 8.字符串转换整数(atoi)
早退的程序员
leetcode算法leetcode
请你来实现一个myAtoi(strings)函数,使其能将字符串转换成一个32位有符号整数。函数myAtoi(strings)的算法如下:1.空格:读入字符串并丢弃无用的前导空格("")2.符号:检查下一个字符(假设还未到字符末尾)为‘-’还是‘+’。如果两者都不存在,则假定结果为正。3.转换:通过跳过前置零来读取该整数,直到遇到非数字字符或到达字符串的结尾。如果没有读取数字,则结果为0。4.舍入
- C#操作图片(图片大小、质量等)
山歌寥哉
C#
使用nuget包:ImageProcessor上代码publicvoidImageCompress(){stringfile=@"C:\Users\Administrator\Pictures\test.jpg";byte[]photoBytes=File.ReadAllBytes(file);
- Unity 文字过长末尾改成省略号
akuojustdoit
C#&unity游戏开发自学游戏unity游戏引擎
策划提了个需求是文字超过两行的话那第二行的末尾改成省略号,然后省略剩下的文字搜索后看到了一篇文章https://blog.csdn.net/zzxiang1985/article/details/82225615赋值后调用一次就好,省事了publicvoidSetTextWithEllipsis(TexttextComponent,stringvalue){vargenerator=newText
- 关于uniapp使用renderJS中调用父类方法和参数的使用
Little_Code
前端学习之路uni-app前端javascript
首先,页面这样下:加载中:{{loadingProgress}}%exportdefault{name:'threeModel',props:{modelUrl:{type:[String],default:''},modelname:{type:[String],default:''},height:{type:[Number,String],default:'300px'},parentMet
- python:sqlalchemy-快速开始
番茄牛腩不吃番茄
sqlalchemy数据库mysqlpythonsqlalchemy
#一、声明模型首先我们定义了模块级结构,这些结构将形成我们将从数据库中查询的结构。这种结构称为声明性映射,讲白了其实就是SQL表中存在的元数据。from sqlalchemy import Columnfrom sqlalchemy import ForeignKeyfrom sqlalchemy import Integerfrom sqlalchemy import Stringfrom sq
- leetcode:926. 将字符串翻转到单调递增
uncle_ll
编程练习-Leetcodeleetcode算法动态规划字符串顺序
926.将字符串翻转到单调递增来源:力扣(LeetCode)链接:https://leetcode.cn/problems/flip-string-to-monotone-increasing/如果一个二进制字符串,是以一些0(可能没有0)后面跟着一些1(也可能没有1)的形式组成的,那么该字符串是单调递增的。给你一个二进制字符串s,你可以将任何0翻转为1或者将1翻转为0。返回使s单调递增的最小翻转
- 为什么Swift不允许字符串使用===判断?ObjC字符串为什么有@前缀?NSLog和printf的区别?NSString *s = @“hello“变量s是不可变的吗?什么是Cocoa?
程序员小迷
Objective-cSwift小话iosioscocoaobjective-cswiftcmacoswpf
为什么Swift不允许字符串使用===判断?===判断实例是否引用同一个引用,!==判断实例不指向同一个引用,它们只能用于类类型/引用类型,而字符串在Swift是值类型。ObjC字符串为什么有@前缀?这是为了和普通C语言字符串区分开,@前缀代表字符串是NSString*类型,这种类型并不能和char*直接等价。NSLog和printf的区别NSLog是Objective-C引入的日志记录函数,pr
- 使用LAMP(httpd+php+mariadb)架构搭建zabbix监控系统,已编译安装的形式来安装zabbix,zabbix是监控各种网络参数以及服务器健康性和完整性的软件。
喜欢研究新东西
phpmariadbzabbix
1.首先,准备一台虚拟机,关闭防火墙,setenforce0。#关闭防火墙systemctlstopfirewalld#关闭setenforce0setenforce02.安装php模块#安装phpyuminstall-yphp-cliphp-fpmphp-gdphp-mbstringphp-bcmathphp-xmlphp-ldapphp-mysqlnd3.安装httpd,配置文件(前端),修改
- 《鸿蒙开发-答案之书》拆分文本里的链接和普通文本
893151960
鸿蒙开发-答案之书鸿蒙系统鸿蒙开发鸿蒙教程harmonyos鸿蒙正则法则
《鸿蒙开发-答案之书》拆分文本里的链接和普通文本/***@desc:拆分文本里的链接和普通文本。子数组第一位是标识:link是链接;text是文本。子数组第二位是内容**/exportfunctionextractLinksAndTexts(input:string):string[][]{letmatches=input.matchAll(newRegExp(/(?[^(http)]+)|(?h
- 关于酒店旅游信息的数据采集API接口返回||包含参数说明
电商数据girl
电商项目API接口测试跨境电商API接口酒店信息相关API接口旅游java开发语言大数据数据库json
相关网站站点xiechengAPI接入说明携程获取酒店详情原数据API返回值说明item_get_app-获取酒店详情原数据xiecheng.item_get_app公共参数名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,it
- Java基础06
鹿说-
Java基础java
Java基础06运算符Java语言支持如下运算符:算术运算符:+,-,*,/,%,++,–赋值运算符:=关系运算符:>,=,>,>>条件运算符:?,:扩展赋值运算符:+=,-=,*=,/=自增自减运算符++,–publicclassDemo{publicstaticvoidmain(String[]args){inta=0;intb=a++;//先将a赋值给b,再自增,所以b=0intc=++a;
- curl模拟浏览器请求
lamp_yang_3533
PHP中常用的自定义函数curl模拟浏览器请求postget
自行封装一个curl模拟浏览器请求的函数,如下:/***curl模拟浏览器请求*@paramunknown$url请求的地址*@paramarray$params请求地址所需要的参数*@paramstring$method请求的类型*@paramarray$headershttp请求头*@returnstring|mixed*/functioncurlRequest($url,array$para
- golang中数组array和切片slice的区别
tekin
golanggolang开发语言后端数组array切片slice
go语言中最常用的数据结构数组array和切片slice的区别对比:定义和初始化:数组:[size]类型切片:[]类型,数组变量[low:high]vararr1=[3]string{"a","b","c"}//数组array定义和初始化fmt.Printf("arr1数据类型:%vType:%T\n",reflect.ValueOf(arr1).Kind(),arr1)//arr1数据类型:ar
- java跨系统调用webservice接口,xml形式传输
陈小咩咩
//请求webservice的接口处理@Overridepublicnet.sf.json.JSONObjectproSalePrice(Stringurl,QueryListDtoqueryDto)throwsException{//Stringurl="http://10.1.225.155:80/SPH_MOBILE_ERP/salePrice/ProxyServices/selectSal
- react19实现在线代码编辑器-codemirror与monaco(并是放置在表单中)
I like Code?
编辑器
本文章提供两个在线代码编辑器实现代码importCodeMirrorfrom'@uiw/react-codemirror'//获取CodeMirror的值,设置为Form的字段值functionhandleCodemirrorEditorChange(value:string|undefined){form.setFieldsValue({fieldC:value||''})//更新form数据}
- leetcode 12. 整数转罗马数字
lyx142606
#leetcode.1--100leetcodelinux算法
classSolution{public:stringintToRoman(intnum){vectorvec1={"","I","II","III","IV","V","VI","VII","VIII","IX"};vectorvec2={"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};vectorvec3={"","C","CC","CCC
- leetcode 8. 字符串转换整数 (atoi)
lyx142606
算法
classSolution{public:intmyAtoi(strings){stringint_max="2147483647";stringint_min="2147483648";stringnum="";inti=0;intlen=s.size();…for(autoit:newnum){ans=ans*10+(it-48);}returnans*-1;}}};
- C++(23):支持多维数组运算符
风静如云
C/C++c++
C++23中[]运算符可以支持多个参数,从而可以实现多维数组:#include#include#includeusingnamespacestd;classMatrixInvalidIndex{public:MatrixInvalidIndex(unsignedinti,unsignedintj):m_i(i),m_j(j){}stringwhat()const{return"Invalidind
- JavaScript 类型转换的意外
神明木佑
javascript开发语言ecmascript
在JavaScript中,类型转换是将一个数据类型转换为另一个数据类型的过程。它可以是显式的,即通过使用特定的转换函数或操作符来实现,也可以是隐式的,即由JavaScript引擎自动完成。以下是JavaScript中的一些常见类型转换规则:字符串转换:使用String()函数或toString()方法可以将其他类型的值转换为字符串类型。varnum=42;varstr=String(num);//
- 函数的例题(转
啊迷诺斯
scala
//foreach函数objectgfghh{defmain(args:Array[String]):Unit={//foreach//作用:对数组的每一个元素都执行一次函数,没有返回值//vararr=Array(-1,2,3,-4,5)//arr.foreach(println)可以直接打印出来//filter函数(过滤)//作用:对数组元素使用函数进行过滤。如果返回为true就保留varar
- 抽象类 (自用)
啊迷诺斯
scala
packagexy//抽象类:制定标准,让其他类去实习//智能汽车//abstract:抽象类。有抽象方法的类,就是抽象类。抽象方法就是没有方法体的方法defautoRunabstractclassAICar(){varsheel=4valhasDriver=false//抽象属性varbrand:String//自动开//defautoRun:Unit={////实现//}//具体方法defru
- scala的特质(自用)
啊迷诺斯
scala
packagexy//trait:特质(美丽,智慧,耐心......)//作用:(1)当接口用实现多继承(2)当抽象类,定义类标准//格式:trait名字{属性,方法}traitBackgroundPlayer{//abstractclassBackgroundPlayer(){//抽象属性valcd:String//抽象方法defplayvalcolor="red"//具体属性defpause(
- 一文理解Redis底层数据结构
全菜工程师小辉
链表数据结构redisjavapython
Redis的5种常见数据结构:字符串(String)、列表(List)、散列(Hash)、集合(Set)、有序集合(SortedSet)。这些都是Redis对外暴露的数据结构,本文将介绍这些数据结构的底层数据结构的实现。Redis底层数据结构有六种:简单动态字符串(SDS)列表字典整数集合跳跃表压缩列表快速列表简单动态字符串(SDS)SDS是"simpledynamicstring"的缩写。Red
- 【YashanDB 知识库】exp 导出 csv 报错 YAS-00218 string conversion failed
数据库运维程序员
【问题分类】数据导入导出【关键字】YAS-00218stringconversionfailed【问题描述】使用exp导出成csv报错YAS-00218stringconversionfailed【问题原因分析】首先使用showparametercharacter查看数据库服务端字符集,发现服务端字符集为GBK然后在文件$YASDB_HOME/client/yasc_env.ini中查看客户端字符
- String...和String[]区别
码农张3
Java基础java
publicstaticStringget(Stringurl,String...params){}类型后面三个点(String…),是从Java5开始,Java语言对方法参数支持一种新写法,叫可变长度参数列表,其语法就是类型后跟…,表示此处接受的参数为0到多个Object类型的对象,或者是一个Object[]。例如我们有一个方法叫做test(String…strings),那么你还可以写方法te
- 51单片机-定时器时钟
Whappy001
51单片机嵌入式硬件单片机
作者:Whappy目的:手撕51时间2024.9.2代码:main.c#include#include"Delay.h"#include"LCD1602.h"#include"Timer0.h"//定时器中断函数unsignedcharSec,Min,Hour;//定义秒voidmain(){LCD_Init();Timer0_Init();LCD_ShowString(1,1,"Clock:")
- 前端上传富文本内容给后端,后端接收到的内容有缺失。
sanggou
前端java开发语言
问题情况今天自测时,发现有个问题,传的富文本的string被阉割了,传参是"text":"cnncbbddbbcv",后端接到的是"text":"cnncbbddbbcv"这后面的去哪了呢,根据排查是因为有yml里有防止xss攻击的相关配置解决方法过滤掉一些接口或者对应的字符串#防止XSS攻击xss:#过滤开关enabled:true#排除链接(在过滤链接中,哪些不需要过滤,可使用*通配符,多个用
- Java常用排序算法/程序员必须掌握的8大排序算法
cugfy
java
分类:
1)插入排序(直接插入排序、希尔排序)
2)交换排序(冒泡排序、快速排序)
3)选择排序(直接选择排序、堆排序)
4)归并排序
5)分配排序(基数排序)
所需辅助空间最多:归并排序
所需辅助空间最少:堆排序
平均速度最快:快速排序
不稳定:快速排序,希尔排序,堆排序。
先来看看8种排序之间的关系:
1.直接插入排序
(1
- 【Spark102】Spark存储模块BlockManager剖析
bit1129
manager
Spark围绕着BlockManager构建了存储模块,包括RDD,Shuffle,Broadcast的存储都使用了BlockManager。而BlockManager在实现上是一个针对每个应用的Master/Executor结构,即Driver上BlockManager充当了Master角色,而各个Slave上(具体到应用范围,就是Executor)的BlockManager充当了Slave角色
- linux 查看端口被占用情况详解
daizj
linux端口占用netstatlsof
经常在启动一个程序会碰到端口被占用,这里讲一下怎么查看端口是否被占用,及哪个程序占用,怎么Kill掉已占用端口的程序
1、lsof -i:port
port为端口号
[root@slave /data/spark-1.4.0-bin-cdh4]# lsof -i:8080
COMMAND PID USER FD TY
- Hosts文件使用
周凡杨
hostslocahost
一切都要从localhost说起,经常在tomcat容器起动后,访问页面时输入http://localhost:8088/index.jsp,大家都知道localhost代表本机地址,如果本机IP是10.10.134.21,那就相当于http://10.10.134.21:8088/index.jsp,有时候也会看到http: 127.0.0.1:
- java excel工具
g21121
Java excel
直接上代码,一看就懂,利用的是jxl:
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import
- web报表工具finereport常用函数的用法总结(数组函数)
老A不折腾
finereportweb报表函数总结
ADD2ARRAY
ADDARRAY(array,insertArray, start):在数组第start个位置插入insertArray中的所有元素,再返回该数组。
示例:
ADDARRAY([3,4, 1, 5, 7], [23, 43, 22], 3)返回[3, 4, 23, 43, 22, 1, 5, 7].
ADDARRAY([3,4, 1, 5, 7], "测试&q
- 游戏服务器网络带宽负载计算
墙头上一根草
服务器
家庭所安装的4M,8M宽带。其中M是指,Mbits/S
其中要提前说明的是:
8bits = 1Byte
即8位等于1字节。我们硬盘大小50G。意思是50*1024M字节,约为 50000多字节。但是网宽是以“位”为单位的,所以,8Mbits就是1M字节。是容积体积的单位。
8Mbits/s后面的S是秒。8Mbits/s意思是 每秒8M位,即每秒1M字节。
我是在计算我们网络流量时想到的
- 我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
Spring 3 系列
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
- 高性能mysql 之 选择存储引擎(一)
annan211
mysqlInnoDBMySQL引擎存储引擎
1 没有特殊情况,应尽可能使用InnoDB存储引擎。 原因:InnoDB 和 MYIsAM 是mysql 最常用、使用最普遍的存储引擎。其中InnoDB是最重要、最广泛的存储引擎。她 被设计用来处理大量的短期事务。短期事务大部分情况下是正常提交的,很少有回滚的情况。InnoDB的性能和自动崩溃 恢复特性使得她在非事务型存储的需求中也非常流行,除非有非常
- UDP网络编程
百合不是茶
UDP编程局域网组播
UDP是基于无连接的,不可靠的传输 与TCP/IP相反
UDP实现私聊,发送方式客户端,接受方式服务器
package netUDP_sc;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Ine
- JQuery对象的val()方法执行结果分析
bijian1013
JavaScriptjsjquery
JavaScript中,如果id对应的标签不存在(同理JAVA中,如果对象不存在),则调用它的方法会报错或抛异常。在实际开发中,发现JQuery在id对应的标签不存在时,调其val()方法不会报错,结果是undefined。
- http请求测试实例(采用json-lib解析)
bijian1013
jsonhttp
由于fastjson只支持JDK1.5版本,因些对于JDK1.4的项目,可以采用json-lib来解析JSON数据。如下是http请求的另外一种写法,仅供参考。
package com;
import java.util.HashMap;
import java.util.Map;
import
- 【RPC框架Hessian四】Hessian与Spring集成
bit1129
hessian
在【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中介绍了基于Hessian的RPC服务的实现步骤,在那里使用Hessian提供的API完成基于Hessian的RPC服务开发和客户端调用,本文使用Spring对Hessian的集成来实现Hessian的RPC调用。
定义模型、接口和服务器端代码
|---Model
&nb
- 【Mahout三】基于Mahout CBayes算法的20newsgroup流程分析
bit1129
Mahout
1.Mahout环境搭建
1.下载Mahout
http://mirror.bit.edu.cn/apache/mahout/0.10.0/mahout-distribution-0.10.0.tar.gz
2.解压Mahout
3. 配置环境变量
vim /etc/profile
export HADOOP_HOME=/home
- nginx负载tomcat遇非80时的转发问题
ronin47
nginx负载后端容器是tomcat(其它容器如WAS,JBOSS暂没发现这个问题)非80端口,遇到跳转异常问题。解决的思路是:$host:port
详细如下:
该问题是最先发现的,由于之前对nginx不是特别的熟悉所以该问题是个入门级别的:
? 1 2 3 4 5
- java-17-在一个字符串中找到第一个只出现一次的字符
bylijinnan
java
public class FirstShowOnlyOnceElement {
/**Q17.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
* 1.int[] count:count[i]表示i对应字符出现的次数
* 2.将26个英文字母映射:a-z <--> 0-25
* 3.假设全部字母都是小写
*/
pu
- mongoDB 复制集
开窍的石头
mongodb
mongo的复制集就像mysql的主从数据库,当你往其中的主复制集(primary)写数据的时候,副复制集(secondary)会自动同步主复制集(Primary)的数据,当主复制集挂掉以后其中的一个副复制集会自动成为主复制集。提供服务器的可用性。和防止当机问题
mo
- [宇宙与天文]宇宙时代的经济学
comsci
经济
宇宙尺度的交通工具一般都体型巨大,造价高昂。。。。。
在宇宙中进行航行,近程采用反作用力类型的发动机,需要消耗少量矿石燃料,中远程航行要采用量子或者聚变反应堆发动机,进行超空间跳跃,要消耗大量高纯度水晶体能源
以目前地球上国家的经济发展水平来讲,
- Git忽略文件
Cwind
git
有很多文件不必使用git管理。例如Eclipse或其他IDE生成的项目文件,编译生成的各种目标或临时文件等。使用git status时,会在Untracked files里面看到这些文件列表,在一次需要添加的文件比较多时(使用git add . / git add -u),会把这些所有的未跟踪文件添加进索引。
==== ==== ==== 一些牢骚
- MySQL连接数据库的必须配置
dashuaifu
mysql连接数据库配置
MySQL连接数据库的必须配置
1.driverClass:com.mysql.jdbc.Driver
2.jdbcUrl:jdbc:mysql://localhost:3306/dbname
3.user:username
4.password:password
其中1是驱动名;2是url,这里的‘dbna
- 一生要养成的60个习惯
dcj3sjt126com
习惯
一生要养成的60个习惯
第1篇 让你更受大家欢迎的习惯
1 守时,不准时赴约,让别人等,会失去很多机会。
如何做到:
①该起床时就起床,
②养成任何事情都提前15分钟的习惯。
③带本可以随时阅读的书,如果早了就拿出来读读。
④有条理,生活没条理最容易耽误时间。
⑤提前计划:将重要和不重要的事情岔开。
⑥今天就准备好明天要穿的衣服。
⑦按时睡觉,这会让按时起床更容易。
2 注重
- [介绍]Yii 是什么
dcj3sjt126com
PHPyii2
Yii 是一个高性能,基于组件的 PHP 框架,用于快速开发现代 Web 应用程序。名字 Yii (读作 易)在中文里有“极致简单与不断演变”两重含义,也可看作 Yes It Is! 的缩写。
Yii 最适合做什么?
Yii 是一个通用的 Web 编程框架,即可以用于开发各种用 PHP 构建的 Web 应用。因为基于组件的框架结构和设计精巧的缓存支持,它特别适合开发大型应
- Linux SSH常用总结
eksliang
linux sshSSHD
转载请出自出处:http://eksliang.iteye.com/blog/2186931 一、连接到远程主机
格式:
ssh name@remoteserver
例如:
ssh ickes@192.168.27.211
二、连接到远程主机指定的端口
格式:
ssh name@remoteserver -p 22
例如:
ssh i
- 快速上传头像到服务端工具类FaceUtil
gundumw100
android
快速迭代用
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOExceptio
- jQuery入门之怎么使用
ini
JavaScripthtmljqueryWebcss
jQuery的强大我何问起(个人主页:hovertree.com)就不用多说了,那么怎么使用jQuery呢?
首先,下载jquery。下载地址:http://hovertree.com/hvtart/bjae/b8627323101a4994.htm,一个是压缩版本,一个是未压缩版本,如果在开发测试阶段,可以使用未压缩版本,实际应用一般使用压缩版本(min)。然后就在页面上引用。
- 带filter的hbase查询优化
kane_xie
查询优化hbaseRandomRowFilter
问题描述
hbase scan数据缓慢,server端出现LeaseException。hbase写入缓慢。
问题原因
直接原因是: hbase client端每次和regionserver交互的时候,都会在服务器端生成一个Lease,Lease的有效期由参数hbase.regionserver.lease.period确定。如果hbase scan需
- java设计模式-单例模式
men4661273
java单例枚举反射IOC
单例模式1,饿汉模式
//饿汉式单例类.在类初始化时,已经自行实例化
public class Singleton1 {
//私有的默认构造函数
private Singleton1() {}
//已经自行实例化
private static final Singleton1 singl
- mongodb 查询某一天所有信息的3种方法,根据日期查询
qiaolevip
每天进步一点点学习永无止境mongodb纵观千象
// mongodb的查询真让人难以琢磨,就查询单天信息,都需要花费一番功夫才行。
// 第一种方式:
coll.aggregate([
{$project:{sendDate: {$substr: ['$sendTime', 0, 10]}, sendTime: 1, content:1}},
{$match:{sendDate: '2015-
- 二维数组转换成JSON
tangqi609567707
java二维数组json
原文出处:http://blog.csdn.net/springsen/article/details/7833596
public class Demo {
public static void main(String[] args) { String[][] blogL
- erlang supervisor
wudixiaotie
erlang
定义supervisor时,如果是监控celuesimple_one_for_one则删除children的时候就用supervisor:terminate_child (SupModuleName, ChildPid),如果shutdown策略选择的是brutal_kill,那么supervisor会调用exit(ChildPid, kill),这样的话如果Child的behavior是gen_