当你使用new[]操作符来创建一个对象数组时,构造函数会被调用与数组大小相等的次数。每个数组元素都会通过构造函数进行初始化。以下是一个例子:#includeclassMyClass{public:MyClass(){std::cout<<"MyClassconstructorcalled."<
Vue 3 中的 toRef 和 toRefs:区别与使用场景
小黄编程快乐屋
vue.jsjavascript前端
1.什么是toRef?toRef是一个用于将响应式对象的某个属性转换为ref的函数。它的主要作用是保持单个属性的响应性,即使该属性是从一个响应式对象中提取出来的。使用场景当你只需要从响应式对象中提取一个属性,并希望保持其响应性时,可以使用toRef。import{reactive,toRef}from'vue';conststate=reactive({count:0,name:'Vue'});/
如何解决 npm install 卡在“sill idealTree buildDeps“的问题
D0ublecl1ck
问题记录npm前端node.js
你好,欢迎来到我的博客!今天我要分享的是关于解决在Vue项目中执行npminstall时卡在"sillidealTreebuildDeps"的问题。这个问题可能会让你感到困惑,但是不用担心,我将会一步步为你解决。问题描述当你尝试在Vue项目中执行npminstall时,你可能会遇到一个问题:命令卡在"sillidealTreebuildDeps"这一步,没有任何反应。问题原因这个问题的根源在于淘宝
Python学习之-Pydantic详解
夏天Aileft
Pythonpython学习Pydantic
前言:Pydantic是一个Python库,用于数据解析和验证。它主要基于Python类型提示来实现数据的校验和设定限制条件。在Pydantic中,BaseModel是一个核心基类,用于创建数据模型。1BaseModel的主要作用包括:数据验证(Validation):BaseModel类提供了自动数据验证的功能。当你创建一个基于BaseModel的子类并且为其字段添加类型注解(typeannot
chatgpt赋能python:Python降级指南:如何安全地降级Python版本
tulingtest
ChatGptchatgpt人工智能计算机
Python降级指南:如何安全地降级Python版本当你正在开发一个项目时,你可能会遇到一个问题:你需要使用的库只支持较旧的Python版本,而你正在使用的Python版本却较新。这个时候,降级Python版本可能是你的最佳选择。在这篇文章中,我们将介绍如何安全地降级Python版本。什么是Python降级?Python降级是指将Python的版本从较新的版本降至较旧的版本。在编写Python代码
什么是python虚拟机
python游乐园
计算机基础python开发语言
一、定义Python虚拟机(PythonVirtualMachine,简称PVM)是Python语言的运行核心。它是一种抽象的计算机,用于执行Python字节码。字节码是Python源代码经过编译后生成的一种中间表示形式,就像是一种特殊的机器语言,但不是针对物理硬件的,而是针对Python虚拟机这个“虚拟硬件”。二、工作原理编译阶段当你编写Python源代码(例如.py文件)时,Python解释器
day39——多线程实例、多线程锁
weixin_33953384
javapython
python的锁可以独立提取出来1mutex=threading.Lock()2#锁的使用3#创建锁4mutex=threading.Lock()5#锁定6mutex.acquire([timeout])7#释放8mutex.release()概念资源加锁其实并不是给资源加锁,而是用锁去锁定资源,你可以定义多个锁,像下面的代码,当你需要独占某一资源时,任何一个锁都可以锁这个资源就好比你用不同的锁都
WPF如何跨线程更新界面
硅谷调试员
C#基础wpfc#.net
WPF如何跨线程更新界面在WPF中,类似于WinForms,UI控件只能在UI线程(即主线程)上进行更新。WPF通过Dispatcher机制提供了跨线程更新UI的方式。由于WPF的界面基于Dispatcher线程模型,当你在非UI线程(例如后台线程)上执行操作时,直接更新UI会导致InvalidOperationException异常。为了避免这个问题,WPF提供了Dispatcher类来让我们在
unity3d————坐标转换(世界转本地)
无敌最俊朗@
Unity四部曲之基础篇unity游戏引擎学习开发语言c#
this.transform.InverseTransformPoint1.世界坐标系与局部坐标系世界坐标系:Unity3D中的全局参考框架,所有游戏对象的位置、旋转和缩放都是相对于这个框架来定义的。局部坐标系:每个游戏对象都有自己的局部坐标系,这个坐标系是相对于该游戏对象的位置、旋转和缩放来定义的。2.InverseTransformPoint的作用当你有一个在世界坐标系中的点,并且你想知道这个
想提升英文文献阅读速度?有哪些实用方法?
paixiaoxin
科研方法文献工具人工智能科研研究生文献管理文献阅读文献翻译scholaread
在科研的道路上,筛选文献就像是大海捞针,找对了方法,就能快速锁定那些有价值的信息。尤其是在实验方向尚未确定时,如何从海量文献中筛选出“金子”,就显得尤为重要。关键的第一步:精准筛选当你面对一堆英文文献时,首先得明白,不是每一篇文献都值得你细读。这时候,筛选的技巧就显得至关重要。以下是如何快速而精准地进行筛选:快速阅读技巧:先看摘要和结论:这是最快速了解文章核心的方法。如果这两部分都看不懂或者不感兴
深入解析MySQL的EXPLAIN:指标详解与索引优化
后端mysql数据库
MySQL中的EXPLAIN语句是一个强大的工具,用于分析和优化SQL查询。通过EXPLAIN,你可以了解MySQL查询优化器是如何执行你的查询的,以及是否有可以改进的地方。本文将详细讲解EXPLAIN输出的各项指标,并说明如何利用这些指标来优化索引结构和SQL语句。一、EXPLAIN的基本使用EXPLAIN语句用于分析SELECT语句的执行计划。当你在SQL语句前加上EXPLAIN关键字时,My
don‘t sleep一款阻止系统意外中断,保证工作娱乐安全运行的软件!
Tech智汇站
经验分享学习生活
软件介绍给大家分享一款大小仅500多KB,用于防止系统进入关机、重启、待机、睡眠、休眠、注销、屏幕保护等状态功能的软件,避免工作或者娱乐受到打扰。软件主要由阻止和允许功能构成。例如当你在下载、暂时离开、工作的时候使用阻止功能可以避免系统进入不同的电源管理模式。你也可以通过监测计时器、电池、CPU、网络资源从而退出阻止状态。例如使用断开电源的笔记本,这时通过对电池电量检测,在低电量时进入不同的电源管
使用SQL和事务将表中数据复制到另外表中,删除旧数据
Daniel的万事通杂货铺
sql数据库java
在SQL中,使用事务来确保数据的一致性和完整性是非常重要的。当你想要将一张表中的所有数据复制到另一张结构相同的表,并随后删除原始表中的数据时,可以按照以下步骤操作:步骤概述开始一个事务:确保所有操作要么全部成功,要么全部失败。插入数据:从源表选择所有数据并插入到目标表中。删除旧数据:从源表中删除所有已复制的数据。提交或回滚事务:根据操作结果决定是否提交更改或者回滚。示例代码(以SQLServer为
如何用PostgreSQL SQL和事务将一张表中数据复制到另外一张相同的表,然后删除旧数据
Daniel的万事通杂货铺
postgresqlsql数据库
在PostgreSQL中,使用事务来确保数据的一致性和完整性是非常重要的。当你想要将一张表中的所有数据复制到另一张结构相同的表,并随后删除原始表中的数据时,可以按照以下步骤操作:步骤概述开始一个事务:确保所有操作要么全部成功,要么全部失败。插入数据:从源表选择所有数据并插入到目标表中。删除旧数据:从源表中删除所有已复制的数据。提交或回滚事务:根据操作结果决定是否提交更改或者回滚。示例代码(以Pos
Electron 开发者的 Tauri 2.0 实战指南:快速入门与思维转换
作为一名经验丰富的Electron开发者,当你第一次接触Tauri时,可能会感到有些不适应。本文将帮助你快速理解Tauri2.0的核心概念,并通过实际案例完成从Electron到Tauri的思维转换。架构对比Electron的架构在Electron中,我们习惯了以下架构:Electron应用├──主进程(MainProcess)│├──窗口管理│├──系统API调用│└──IPC通信└──渲染进程
对于vue中<template #default=“{row}“> 的解释
wangyk,C'est la vie
vue.jsjavascriptelementui
是一个在Vue.js的模板中使用的语法,特别是在Vue的表格组件(如ElementUI的el-table)中。这个语法是用于定义如何渲染表格的每一行数据。这里的#default是一个具名插槽(namedslot),通常用于定义如何渲染表格的默认行。{row}是一个参数,代表当前行的数据对象。简单来说,当你有一个表格组件,并希望自定义如何渲染每一行数据时,你可以使用这种语法来达到这个目的。例如:在上
【SQL教程】Day01-01 这是小白的零基础SQL教程
科研哥搞学术
sql教程sql数据库
1.什么是SQL?SQL(结构化查询语言)是一种标准化的计算机语言,用于访问和处理关系数据库。简单来说,SQL是与数据库进行交互的工具,负责执行数据库操作,例如数据查询、插入、更新和删除。举个例子,当你开发一个电商网站时,需要将用户的个人信息、订单信息、商品数据存储在数据库中;又或者,在开发一个手机游戏时,需要存储玩家的道具、成绩、通关记录等信息,这些操作都会通过SQL语言来实现。无论使用什么编程
复杂查询优化:避免 SQL 查询中的 N+1 查询问题
檐角小猫
sql数据库
在SQL查询优化中,N+1查询问题是一个常见的性能问题,特别是在关系型数据库中。当你的查询不当时,可能会导致对数据库进行大量的额外查询,造成不必要的性能损耗。什么是N+1查询问题?N+1查询问题通常出现在一对多或多对多的关系中。例如,假设你有一个包含用户和订单的数据库模型:一个用户(User)可以有多个订单(Order),即User和Order是一对多的关系。你需要查询所有用户及其相关的订单。一个
巧夺天工:VSCode Python 终端环境隔离的背后原理
每个写Python的小伙伴都会感慨,VSCode对Python环境的支持太好了!当你切换Python解释器后,新开的终端会自动激活对应的环境,不同项目互不干扰,用起来简直不要太舒服。但是,你知道这背后的实现原理吗?终端环境隔离的本质:环境变量首先,我们要理解终端中环境激活的本质。当我们在终端中执行sourcevenv/bin/activate或condaactivateenv_name时,这些命令
网站提示不安全解决方案
ssl证书
我们时常会遇到一些令人头疼的情况,其中网站被提示不安全就是不少站长和网民都遭遇过的问题。当你的网站访客看到那刺眼的“不安全”警告标识时,不仅会对你的网站信任度大打折扣,甚至可能直接转身离开,那么为何网站会出现这种情况,又该如何解决呢?网站提示不安全的缘由缺少SSL证书:这是最为常见的原因之一。SSL证书过期:即使曾经安装过SSL证书,但证书是有有效期的。一旦证书过期,其加密保护功能就失效了,浏览器
HTTP 入门:认识网络通信基础
计算机毕设定制辅导-无忧学长
#HTTPhttp网络协议网络
一、引言:HTTP在网络世界的基石地位在当今数字化的时代,网络通信如同空气一般无处不在,而HTTP协议则是网络世界中最为重要的基石之一。无论是浏览网页、使用手机APP,还是进行各种网络数据交互,HTTP都在背后默默地发挥着作用,它承载着我们日常的网页浏览、数据传输和信息交流,让不同系统、不同语言编写的程序能够实现高效的网络通信,是互联网应用得以广泛普及的核心支撑。你是否好奇,当你在浏览器地址栏输入
访问网站显示不安全?免费解决方案在此!
ssl
当你在浏览器中访问某个网站时,如果看到“不安全”的警告,这通常意味着该网站可能存在一些安全隐患。别担心,我们来一起看看这些问题可能是什么,并提供一些简单的解决方法。常见问题及解决方案1.没有SSL证书问题描述:如果网站没有安装有效的SSL证书,所有数据传输都是明文的,任何人都能窥探到用户输入的信息。解决方案:网站管理员需要申请并安装由受信任的证书颁发机构(CA)签发的SSL证书。好消息是,JoyS
如何在 JavaScript 中使用正则表达式匹配电话号码
我得说实话,当我第一次看到一个正则表达式时,那是一次可怕的体验。它看起来就像一个奇怪的外星语言!我心里想:“我花了几个月时间学习编程,现在还得学这个看似超级复杂的语言!?”然而,当我坐下来真正学习正则表达式时,我发现它并不是很难,一旦你学会了语法。为什么我甚至要费心学习正则表达式?当你开始编码越来越多时,它确实在各种情况下都非常方便,不仅仅是为了验证电话号码和电子邮件地址。当从日志中提取数据、从A
2019-12-22-22:30
涓涓1016
今天是冬至,写下我的日更,是因为这两天的学习真的是能量的满满,让我看到了自己,未来另外一种可能性,也让我看到了这两年这几年的过程中我所接受那些痛苦的来源。一切的根源和痛苦都来自于人生,家庭,而你的原生家庭,你的爸爸和妈妈,是因为你这个灵魂在那一刻选择他们作为你的爸爸和妈妈来的,所以你得接受他,你得接纳他,他就是因为他的存在而给你的学习和成长带来这些痛苦,那其实是你必然要经历的这个过程,当你去接纳的
jvm调优总结(从基本概念 到 深度优化)
oloz
javajvmjdk虚拟机应用服务器
JVM参数详解:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。
【Scala十六】Scala核心十:柯里化函数
bit1129
scala
本篇文章重点说明什么是函数柯里化,这个语法现象的背后动机是什么,有什么样的应用场景,以及与部分应用函数(Partial Applied Function)之间的联系 1. 什么是柯里化函数
A way to write functions with multiple parameter lists. For instance
def f(x: Int)(y: Int) is a
HashMap
dalan_123
java
HashMap在java中对很多人来说都是熟的;基于hash表的map接口的非同步实现。允许使用null和null键;同时不能保证元素的顺序;也就是从来都不保证其中的元素的顺序恒久不变。
1、数据结构
在java中,最基本的数据结构无外乎:数组 和 引用(指针),所有的数据结构都可以用这两个来构造,HashMap也不例外,归根到底HashMap就是一个链表散列的数据
Java Swing如何实时刷新JTextArea,以显示刚才加append的内容
周凡杨
java更新swingJTextArea
在代码中执行完textArea.append("message")后,如果你想让这个更新立刻显示在界面上而不是等swing的主线程返回后刷新,我们一般会在该语句后调用textArea.invalidate()和textArea.repaint()。
问题是这个方法并不能有任何效果,textArea的内容没有任何变化,这或许是swing的一个bug,有一个笨拙的办法可以实现
servlet或struts的Action处理ajax请求
g21121
servlet
其实处理ajax的请求非常简单,直接看代码就行了:
//如果用的是struts
//HttpServletResponse response = ServletActionContext.getResponse();
// 设置输出为文字流
response.setContentType("text/plain");
// 设置字符集
res
FineReport的公式编辑框的语法简介
老A不折腾
finereport公式总结
FINEREPORT用到公式的地方非常多,单元格(以=开头的便被解析为公式),条件显示,数据字典,报表填报属性值定义,图表标题,轴定义,页眉页脚,甚至单元格的其他属性中的鼠标悬浮提示内容都可以写公式。
简单的说下自己感觉的公式要注意的几个地方:
1.if语句语法刚接触感觉比较奇怪,if(条件式子,值1,值2),if可以嵌套,if(条件式子1,值1,if(条件式子2,值2,值3)
linux mysql 数据库乱码的解决办法
墙头上一根草
linuxmysql数据库乱码
linux 上mysql数据库区分大小写的配置
lower_case_table_names=1 1-不区分大小写 0-区分大小写
修改/etc/my.cnf 具体的修改内容如下:
[client]
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/va
我的spring学习笔记6-ApplicationContext实例化的参数兼容思想
aijuans
Spring 3
ApplicationContext能读取多个Bean定义文件,方法是:
ApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[]{“bean-config1.xml”,“bean-config2.xml”,“bean-config3.xml”,“bean-config4.xml
mysql 基准测试之sysbench
annan211
基准测试mysql基准测试MySQL测试sysbench
1 执行如下命令,安装sysbench-0.5:
tar xzvf sysbench-0.5.tar.gz
cd sysbench-0.5
chmod +x autogen.sh
./autogen.sh
./configure --with-mysql --with-mysql-includes=/usr/local/mysql
sql的复杂查询使用案列与技巧
百合不是茶
oraclesql函数数据分页合并查询
本片博客使用的数据库表是oracle中的scott用户表;
------------------- 自然连接查询
查询 smith 的上司(两种方法)
&
深入学习Thread类
bijian1013
javathread多线程java多线程
一. 线程的名字
下面来看一下Thread类的name属性,它的类型是String。它其实就是线程的名字。在Thread类中,有String getName()和void setName(String)两个方法用来设置和获取这个属性的值。
同时,Thr
JSON串转换成Map以及如何转换到对应的数据类型
bijian1013
javafastjsonnet.sf.json
在实际开发中,难免会碰到JSON串转换成Map的情况,下面来看看这方面的实例。另外,由于fastjson只支持JDK1.5及以上版本,因此在JDK1.4的项目中可以采用net.sf.json来处理。
一.fastjson实例
JsonUtil.java
package com.study;
impor
【RPC框架HttpInvoker一】HttpInvoker:Spring自带RPC框架
bit1129
spring
HttpInvoker是Spring原生的RPC调用框架,HttpInvoker同Burlap和Hessian一样,提供了一致的服务Exporter以及客户端的服务代理工厂Bean,这篇文章主要是复制粘贴了Hessian与Spring集成一文,【RPC框架Hessian四】Hessian与Spring集成
在
【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中
【Mahout二】基于Mahout CBayes算法的20newsgroup的脚本分析
bit1129
Mahout
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information re
nginx三种获取用户真实ip的方法
ronin47
随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之也遇到一个问题:nginx如何获取用户的真实IP地址,如果后端是apache,请跳转到<apache获取用户真实IP地址>,如果是后端真实服务器是nginx,那么继续往下看。
实例环境: 用户IP 120.22.11.11
java-判断二叉树是不是平衡
bylijinnan
java
参考了
http://zhedahht.blog.163.com/blog/static/25411174201142733927831/
但是用java来实现有一个问题。
由于Java无法像C那样“传递参数的地址,函数返回时能得到参数的值”,唯有新建一个辅助类:AuxClass
import ljn.help.*;
public class BalancedBTree {
BeanUtils.copyProperties VS PropertyUtils.copyProperties
诸葛不亮
PropertyUtilsBeanUtils
BeanUtils.copyProperties VS PropertyUtils.copyProperties
作为两个bean属性copy的工具类,他们被广泛使用,同时也很容易误用,给人造成困然;比如:昨天发现同事在使用BeanUtils.copyProperties copy有integer类型属性的bean时,没有考虑到会将null转换为0,而后面的业
[金融与信息安全]最简单的数据结构最安全
comsci
数据结构
现在最流行的数据库的数据存储文件都具有复杂的文件头格式,用操作系统的记事本软件是无法正常浏览的,这样的情况会有什么问题呢?
从信息安全的角度来看,如果我们数据库系统仅仅把这种格式的数据文件做异地备份,如果相同版本的所有数据库管理系统都同时被攻击,那么
vi区段删除
Cwind
linuxvi区段删除
区段删除是编辑和分析一些冗长的配置文件或日志文件时比较常用的操作。简记下vi区段删除要点备忘。
vi概述
引文中并未将末行模式单独列为一种模式。单不单列并不重要,能区分命令模式与末行模式即可。
vi区段删除步骤:
1. 在末行模式下使用:set nu显示行号
非必须,随光标移动vi右下角也会显示行号,能够正确找到并记录删除开始行
清除tomcat缓存的方法总结
dashuaifu
tomcat缓存
用tomcat容器,大家可能会发现这样的问题,修改jsp文件后,但用IE打开 依然是以前的Jsp的页面。
出现这种现象的原因主要是tomcat缓存的原因。
解决办法如下:
在jsp文件头加上
<meta http-equiv="Expires" content="0"> <meta http-equiv="kiben&qu
不要盲目的在项目中使用LESS CSS
dcj3sjt126com
Webless
如果你还不知道LESS CSS是什么东西,可以看一下这篇文章,是我一朋友写给新人看的《CSS——LESS》
不可否认,LESS CSS是个强大的工具,它弥补了css没有变量、无法运算等一些“先天缺陷”,但它似乎给我一种错觉,就是为了功能而实现功能。
比如它的引用功能
?
.rounded_corners{
[入门]更上一层楼
dcj3sjt126com
PHPyii2
更上一层楼
通篇阅读完整个“入门”部分,你就完成了一个完整 Yii 应用的创建。在此过程中你学到了如何实现一些常用功能,例如通过 HTML 表单从用户那获取数据,从数据库中获取数据并以分页形式显示。你还学到了如何通过 Gii 去自动生成代码。使用 Gii 生成代码把 Web 开发中多数繁杂的过程转化为仅仅填写几个表单就行。
本章将介绍一些有助于更好使用 Yii 的资源:
Apache HttpClient使用详解
eksliang
httpclienthttp协议
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会
zxing二维码扫描功能
gundumw100
androidzxing
经常要用到二维码扫描功能
现给出示例代码
import com.google.zxing.WriterException;
import com.zxing.activity.CaptureActivity;
import com.zxing.encoding.EncodingHandler;
import android.app.Activity;
import an
纯HTML+CSS带说明的黄色导航菜单
ini
htmlWebhtml5csshovertree
HoverTree带说明的CSS菜单:纯HTML+CSS结构链接带说明的黄色导航
在线体验效果:http://hovertree.com/texiao/css/1.htm代码如下,保存到HTML文件可以看到效果:
<!DOCTYPE html >
<html >
<head>
<title>HoverTree
fastjson初始化对性能的影响
kane_xie
fastjson序列化
之前在项目中序列化是用thrift,性能一般,而且需要用编译器生成新的类,在序列化和反序列化的时候感觉很繁琐,因此想转到json阵营。对比了jackson,gson等框架之后,决定用fastjson,为什么呢,因为看名字感觉很快。。。
网上的说法:
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。
基于Mybatis封装的增删改查实现通用自动化sql
mengqingyu
DAO
1.基于map或javaBean的增删改查可实现不写dao接口和实现类以及xml,有效的提高开发速度。
2.支持自定义注解包括主键生成、列重复验证、列名、表名等
3.支持批量插入、批量更新、批量删除
<bean id="dynamicSqlSessionTemplate" class="com.mqy.mybatis.support.Dynamic
js控制input输入框的方法封装(数字,中文,字母,浮点数等)
qifeifei
javascript js
在项目开发的时候,经常有一些输入框,控制输入的格式,而不是等输入好了再去检查格式,格式错了就报错,体验不好。 /** 数字,中文,字母,浮点数(+/-/.) 类型输入限制,只要在input标签上加上 jInput="number,chinese,alphabet,floating" 备注:floating属性只能单独用*/
funct
java 计时器应用
tangqi609567707
javatimer
mport java.util.TimerTask; import java.util.Calendar; public class MyTask extends TimerTask { private static final int
erlang输出调用栈信息
wudixiaotie
erlang
在erlang otp的开发中,如果调用第三方的应用,会有有些错误会不打印栈信息,因为有可能第三方应用会catch然后输出自己的错误信息,所以对排查bug有很大的阻碍,这样就要求我们自己打印调用的栈信息。用这个函数:erlang:process_display (self (), backtrace).需要注意这个函数只会输出到标准错误输出。
也可以用这个函数:erlang:get_s