分类: 默认分类

  • 转自虎扑,去女友家拜访须知

    1、去女友家拜访,到她家附近时不可以再挽着她的手,因为她的邻居会品头论足一番。2、进家后,不要对她太随便、太亲热,她的家人在观察着你的一举一动,以免给人留下不好的印象。3、不可不时看手表,否则她的家人会认为你不愿意呆在她家。4、离去时不可一踏出门就露出松懈姿态,因为背后她的家人们还在观察你。5、还应注意一点,去女友家做正式拜访的前一天,一定要洗澡,更衣,要做到干净、整洁,切不可邋里邋遢,既不尊重对方,又给人留下不好的第一印象。最重要的是全身都散发出干净的清洁感,如肩膀上有头屑最让人恶心。男人通常都是以外表取胜,因为父母的眼睛很容易往细处看:干净、整齐的头发、胡子,衬衣领口和袖口洁净,指甲修理整齐、干净,长裤笔挺,干净的袜子的鞋。初登恋人家门,就像参加一场考试,既要注意服饰仪表,又要为应答交谈作好必要的准备。这可从四个方面进行:一是稳定情绪,自信真诚恳切,落落大方,肯定受欢迎;虚伪做作,扭扭捏捏,必然被嫌弃。有了自信心,紧张的心情便会慢慢平静。二是了解情况。询问恋爱对象,了解其家庭成员,父母的职业,文化,兴趣,经历,性格等,知道越详细越好。情况熟悉,才能先有准备,交谈时也能有的放矢。三是初拟内容。想想对方会提出些什么问题。在这种场合下,未来的岳父母常会问问你的家庭,工作,爱好等,自己可做些准备。四是适当准备礼物,初次去对方家里做客,适当送些礼物给对方的父母,很有必要,这不仅表明你对长辈的尊敬,更表明你的诚意,一般来说,对方父母是会接受的,但应注意,送的礼品不宜太贵重,否则起点太高,以后恐怕你难以为继。初次见面,双方难免感到拘束。寒暄之后,常会冷场。这时就要引出话题。一种方法是就地取材。仔细观察墙壁,窗台,桌子等,墙上的名人字画,窗台上的菊花,桌上的各种小摆设,都可借来入话。因为它们往往体现了主人的情趣爱好,能使主人讲出许多愉快的话来。另一种方法是避生就熟。引出话题要避开对方感到陌生的事,从对方最熟悉的入手,可以谈谈新闻,聊聊天气。对方父母提问时,要会叙述说明,态度要恭敬,声音略低一些,柔和些。把话一句句,一层层说清楚,谈话时一定彬彬有礼。长辈夸奖年轻人时,总爱说:“这孩子很懂事!”一般长辈衡量青年好坏的标准,除了天生的外貌和本人的才能外,就看他是否“懂事”,也就是是否能通晓情理。在与对方父母交谈时,你一定要注意礼貌问题,要做到谦虚恭敬,善解人意。初登恋人家门,应忌讳四个方面:一忌油嘴猾舌。说话要朴实,说心里话,如一池清水,清澈见底;不做作,不油滑。二忌自我吹嘘。要懂得:不表示自己聪明,就是聪明;不夸张自己的美德,就是美德。三忌胆小怯羞。要明白:越怕讲错,就越会讲错话;不怕讲错,反倒会使言谈顺畅。胆小,拘谨,害羞,是初登恋人家门交谈时的大忌。四忌粗言劣语。语言必须文明,不礼貌的口头禅,习惯语等,一定要戒除。对方父母请你家宴,说明他们对你有了初步好感,你切不可得意忘形,露出“野性”。由于来做客赴宴是“醉翁之意不在酒”,切末贪杯,喝个酩酊大醉,美好姻缘可能会因你一醉方休而毁于一旦。拜见家长怎么穿不适宜:不要在未来的岳父岳母面前表现你的小个性了,艺术家那样的披肩长发啦,络腮胡子啦,各种放荡不羁啦,请收敛起来吧,这只能给你减分。夏天的凉拖短裤,冬天挂满泥的球鞋和满是褶皱的裤子,还是早点换了吧。有汗脚的男孩,也要前期做好准备,不要穿不透气的鞋子,换双新袜子,不要让破洞在换鞋后暴露出来。拜见家长怎么送礼物适宜:送礼物是个大学问,现在已经不再是水果点心的年代了。在挑选礼物的时候,要跟女友商量着来,有没有对方父母一直想买但没有机会去买的东西。送这样的礼物,会让长辈觉得这孩子很贴心。像是茶叶、羊毛披肩这样既实用又有面子的礼物,再好不过了。礼物很重要,价格也很关键。我恰恰不赞同送过于贵重的礼物,毕竟是第一次见面,太贵重的礼物会让对方父母觉得你是不是故意在显示有钱呢,又或者不懂得节俭,这样怎么能过日子呢。拜见家长怎么称呼适宜:得体的礼貌,在初次见面中很重要。可以事先问问对方父母的出生年份,决定称呼叔叔阿姨还是伯父伯母,这样比统称叔叔阿姨更得体一些。跟女方父母交流时要带“您”。拜见家长怎么聊适宜:谈话时,语速要适中。长辈问什么就答什么,如果稍微有点冷场,男孩子可以主动引起一些话题,可以从对方父母的爱好展开话题,但态度要谦虚谨慎,大方得体,不要滔滔不绝。拜见家长怎么不适宜:在具体聊天的过程中,请新人注意一些禁忌。1、如果对方父母有身体不好的,请不要聊健康。2、不要涉及对方家里的私事,比如退休工资啦,以前的单位啦。3、不要滔滔不绝,那样会让人觉得特别不稳重,爱显示自己。遇上本身低调的父母,会觉得这个小伙子有点夸夸其谈。4、不要谈及财产之类比较敏感的话题,即使你家里物质条件好,也要低调。男方第一次去女方家相关事项:1、时间——最好是一天之中的上午,千万别晚上去(当然这得看你未来的岳父母的意识)这是一般的礼节,以示尊重,并暗示你是一个勤奋之人。2、送礼——男方第一次去女方家总不能空手而去,总会想买点礼物,这是很多男孩子好面子才这样想,但是究竟要买什么也拿不定主意。这个礼物不要太多,但是一定要买。要买好看的,拿得出手的,不一定要很实用(因为在他们心理,你毕竟还是“外人”,所以一定要体面)。3、礼貌——上一辈的人对这个看得是比较重的,第一次去女方家之前,男方可以先问问你女朋友她们那里有没有什么特殊的礼节,如没有特别的,则和长辈的交往中保持谦虚的态度可谓是最大的礼节吧,进女方家门时,男方嘴口一定要甜,比如微笑的问叔叔阿姨你好,这是初次登门给人的第一印象(很关键的)。4、言谈——在女方家人面前,男孩子要面带微笑,多听少说,认真聆听老人的言谈、并及时应和,说话时大方自然,但不可以得意忘形,保持诚恳、实诚的本色,也许你有些事情还没想好,如大人们问起也许不知怎么回答,那就照实回答,比胡谄强多了,老人往往要的是感觉,也给你的女友一种姿态,你接纳她并会善待她的父母。”多谢””不客气””你们别忙乎.我来”要常挂在嘴边,多说关心的话。5、话题——避开一些双方敏感的话题,多询问一些女友小时候的事,这是每个父母百说不厌的经典话题,尤其是值得夸耀的事,可问一些细节。当他们的思维跟你转的时候,就减轻了对你的注意力,同时他们会认为你关心他们的女儿。6、衣着——男方第一见女方家长,衣服不必刻意讲究有多华丽,只要整洁、干净,就行,但不要太随便,还有就是头发一定要干净。7、神态举止——自然、轻松、愉快。最好用几句简短的话,表明你对将来的打算,并征求他们的意见。对他们的回答哪怕有异议,也点头,微笑,以后再说,不要破坏此次的气氛。做些力所能及的小事吧,也许他们不会让你做,但态度是另外一回事。8、吃饭——注意用餐礼仪。对方父母请你家宴,说明他们对你有了初步好感,你切不可得意忘形,这很有可能是一次非常近距离的接触。因为从饭局能看出一个人的许多品性和性格,孰优孰劣一目了然。切记,当你在席间满口塞满饭菜,还滔滔不绝讲话的时候,你的形象分已经被减去好多。男生,你无论多饿,还是一口口慢慢吃。不要给自己堆好一大碗饭菜,然后埋头猛往嘴巴里面填。这样的行为,会显得你很粗俗。 吃饭过程还要给家长多端茶倒水,男生要给女友夹菜,这些细节,家长都会看在眼里的。小贴士:由于来赴宴是“醉翁之意不在酒”,切莫贪杯,喝个酩酊大醉,美好姻缘可能会因你一醉方休而毁于一旦。小冰有一个老家的表哥就是因为贪杯,经不住女方家人的轮番劝酒,自己的酒量又有限,知道自己酒量有限还充面子海喝,结果喝得自己都不知道怎么回家的。没过两天,女方那边带话过来就把这门亲事给吹了。9、其他——第一次会面的时间最好不要太长,最好不要住在女方家里,有的家庭很忌讳这个,速战速决,见好就撤,以便为下次会面留下良好的期待。多注意观察,比如看见家里长了花草,就装作很感兴趣可以询问饲养花草的方法,要是看见有什么古董之类的陈设,可以赞美一番。总之就是要抓住岳父母的爱好,他会很有兴趣,觉得你是同道中人。

  • 阿里云服务器git pull/push无法使用

    原因:

    国内服务器厂商墙了github.com

    如何解决:

    一,获取github.com的服务器ip

    我搜索了好久,终于在网上找到了可以查询多地区ping的网站 ping.sx,我们打开网站ping.sx,查询github.com的ping值

    二,我们随便找复制一个ip在本地机器查看能否ping通,比如我们复制一个日本地区ping出的ip 20.27.177.113

    ping 20.27.177.113

    如果不能ping通,我们就换一个ip,总有能ping通的

    三,修改服务器的hosts文件,hosts的目录在/etc/hosts,这里我们就需要刚才能ping通的ip地址

    vim /ect/hosts
    20.27.177.113  github.com 
    20.27.177.113  www.github.com 

    这样我们就设置好了。

  • mac如何使用brew安装php7.4版本

    一、前言

    现在是2023年8月,我本想使用如下命令安装php7,

    brew install php@7.4

    但发现brew官方已经不支持

    二、我是这样安装的

    如果你本地没有安装过其他版本的php,命令如下

    brew tap shivammathur/php
    brew install shivammathur/php/php@7.4
    brew link php@7.4

    如果你之前安装过其他版本的php,需要先unlink一下,比如我的本地安装了php@8.1

    brew unlink php@8.1
    brew link php@7.4

    三、安装brew-php-switcher

    brew install brew-php-switcher

    安装玩第二步以后基本可以实现了,也可安装这个brew-php-switcher包来切换php的版本

    具体用法如下

    切换的前提是你已经安装了多个版本的php

    brew-php-switcher 7.4 -s
    brew-php-switcher 8.1 -s
  • 微信小程序页面启动,如何获取全局的用户信息

    在微信小程序中,App.onLaunchPage.onLoad 是两个生命周期方法。App.onLaunch 是当小程序启动时触发的方法,而 Page.onLoad 是当页面加载时触发的方法。因为 App.onLaunchPage.onLoad 是异步执行的,有时 Page.onLoad 会在 App.onLaunch 完成之前执行。这可能导致页面在获取用户信息之前就已经加载完成。

    this.userInfoReadyCallback 是一种解决方案,用于处理这种情况。它是一个回调函数,用于在全局数据(例如用户信息)准备就绪时通知页面。

    原理如下:

    1. App.onLaunch 方法中,你会尝试获取用户信息并将其存储到全局变量 globalData.userInfo 中。
    2. 由于 wx.getUserInfo 是一个网络请求,它可能在 Page.onLoad 之后才返回。因此,在 App.onLaunch 中,你可以检查是否已经定义了 this.userInfoReadyCallback。如果已经定义了,说明页面已经加载完毕,并且需要在用户信息准备就绪时接收通知。
    3. 在需要用户信息的页面的 Page.onLoad 方法中,你可以检查全局变量 globalData.userInfo 是否已经存在。如果不存在,说明用户信息还未准备就绪,此时你可以定义 this.userInfoReadyCallback 并将其设置为一个处理用户信息的函数。

    这样,当用户信息准备就绪时,App.onLaunch 方法会调用 this.userInfoReadyCallback,从而通知页面并处理用户信息。这种方法确保了页面在处理用户信息时,不会因为数据未准备就绪而出现错误。

    小程序默认的app.js

    // app.js
    App({
      onLaunch: function () {
        // 展示本地存储能力
        var logs = wx.getStorageSync('logs') || []
        logs.unshift(Date.now())
        wx.setStorageSync('logs', logs)
    
        // 登录
        wx.login({
          success: res => {
            // 发送 res.code 到后台换取 openId, sessionKey, unionId
          }
        })
    
        // 获取用户信息
        wx.getSetting({
          success: res => {
            if (res.authSetting['scope.userInfo']) {
              // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
              wx.getUserInfo({
                success: res => {
                  // 可以将 res 发送给后台解码出 unionId
                  this.globalData.userInfo = res.userInfo
    
                  // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
                  // 所以此处加入 callback 以防止这种情况
                  if (this.userInfoReadyCallback) {
                    this.userInfoReadyCallback(res)
                  }
                }
              })
            }
          }
        })
      },
      globalData: {
        userInfo: null
      }
    })
    

    如果想确保在page页面能获取用户信息,需要判断`app.globalData.userInfo`是否存在,不存在的话调用app.userInfoReadyCallback

    // pages/somePage/somePage.js
    Page({
      data: {
        userInfo: null
      },
    
      onLoad: function () {
        // 获取全局 App 实例
        const app = getApp();
    
        // 检查全局数据 globalData.userInfo 是否已经存在
        if (app.globalData.userInfo) {
          // 用户信息已经存在,可以直接在页面中使用
          this.setData({
            userInfo: app.globalData.userInfo
          });
        } else {
          // 用户信息不存在,定义一个处理用户信息的函数
          app.userInfoReadyCallback = (res) => {
            this.setData({
              userInfo: res.data.data
            });
          };
        }
      },
    
      // 其他页面方法...
    });
    
  • 如何查看服务器443端口是否被封

    可以通过以下步骤来查看服务器端口是否通畅:

    1. 打开终端或命令行界面。
    2. 使用telnet命令测试端口连接。例如,要测试80端口是否通畅,可以输入以下命令:
    telnet 服务器IP地址 80

    如果连接成功,则表示该端口通畅;如果连接失败,则表示该端口不通畅。

    1. 使用nc命令测试端口连接。例如,要测试443端口是否通畅,可以输入以下命令:
    nc -zv 服务器IP地址 443

    如果连接成功,则表示该端口通畅;如果连接失败,则表示该端口不通畅。

    1. 使用ping命令测试服务器是否可达。例如,要测试服务器是否可达,可以输入以下命令:
    ping 服务器IP地址

    如果服务器可达,则表示网络连接正常;如果服务器不可达,则表示网络连接故障。

    需要注意的是,不同的操作系统可能有不同的命令行工具,以上命令仅为示例。

  • hapi.js验证器joi.js报错提示

    在使用hapi.js进行数据验证时,如果出现”Cannot set uncompiled validation rules without configuring a validator”的错误,这通常是因为没有正确配置Joi验证器。

    为了正确地使用Joi验证器,需要先将其配置为hapi.js的默认验证器。可以在hapi.js服务器对象的选项中添加”validate”字段来配置Joi验证器。以下是一个示例:

    const Hapi = require('@hapi/hapi');
    const Joi = require('joi');
    
    const server = new Hapi.Server({
        port: 3000,
        host: 'localhost',
        validate: {
            failAction: (request, h, err) => {
                throw err;
            },
            options: {
                abortEarly: false
            },
            schemaOptions: {
                abortEarly: false
            }
        }
    });
    
    // ...
    

    在上述示例中,我们将Joi验证器配置为hapi.js的默认验证器,并设置了一些选项。其中,failAction选项指定了验证失败时的处理方式,options选项和schemaOptions选项用于配置Joi验证器的选项。在使用Joi验证器时,需要遵循Joi的规则和语法,以确保验证器能够正常工作。

  • ffpmeg常用功能

    一,通用转换

    通常使用ffpmeg转换音视频文件直接用下面的命令

    ffpmeg -i input.mp4 output.mp4

    视频分辨率通常为以下几种

    4k 3840×2160

    1080p 1920×1080

    720p 1280×720

    480p 854×480

    360 640×360

    二,自定义视频格式

    根据视频的宽度来设置视频

    ffmpeg -i input.mp4 -vf scale=480:-1 output.mp4

    根据视频的高度来设置视频

    ffmpeg -i input.mp4 -vf scale=-1:720 output.mp4

    三,批量转换

    命令行循环转换文件,达到批量转换的效果

    for i in *.avi; do ffmpeg -i "$i" "${i%.*}.mp4"; done
  • Mysql数据库常用操作

    一,连接/取消连接数据库服务器操作

    连接数据库服务器操作

    mysql -u root -p

    取消连接数据库服务器

    quit
    连接和取消连接数据库服务器操作

    二,创建和使用数据库

    展示数据库列表

    SHOW DATABASES;

    创建一个名叫test的数据库

    CREATE DATABASE test;

    以下是 MySQL 命令行的一些基本操作:

    1. 连接到 MySQL 数据库:在命令行中输入 mysql -u <username> -p 命令,然后输入密码。
    2. 显示所有可用的数据库:在 MySQL 命令行中输入 show databases; 命令。
    3. 选择数据库:在 MySQL 命令行中输入 use <database_name>; 命令,其中 <database_name> 是要选择的数据库的名称。
    4. 显示数据库中的所有表:在 MySQL 命令行中输入 show tables; 命令。
    5. 显示表的结构:在 MySQL 命令行中输入 describe <table_name>; 命令,其中 <table_name> 是要查看的表的名称。
    6. 查询数据:在 MySQL 命令行中输入 select * from <table_name>; 命令,其中 <table_name> 是要查询的表的名称。
    7. 插入数据:在 MySQL 命令行中输入 insert into <table_name> (column1, column2, column3) values ('value1', 'value2', 'value3'); 命令,其中 <table_name> 是要插入数据的表的名称,column1, column2, column3 是要插入的列的名称,value1, value2, value3 是要插入的值。
    8. 更新数据:在 MySQL 命令行中输入 update <table_name> set column1='value1' where column2='value2'; 命令,其中 <table_name> 是要更新的表的名称,column1='value1' 是要更新的列和值,where column2='value2' 是要更新的行的条件。
    9. 删除数据:在 MySQL 命令行中输入 delete from <table_name> where column='value'; 命令,其中 <table_name> 是要删除数据的表的名称,where column='value' 是要删除的行的条件。
    10. 退出 MySQL 命令行:在 MySQL 命令行中输入 exit 命令或者使用快捷键 Ctrl + D
  • nuxt v3 如何安装tailwindcss

    刚开始我上tailwind的官网想看看nuxt v3如何安装tailwindcss,安装了一半发现好像不对,tailwind官网的那个教程是nuxt2安装的方式。

    搜索之后发现,nuxt官方写了tailwind的插件,网址如下:

    nuxtjs的生态tailwind插件 https://tailwindcss.nuxtjs.org/

    安装3步搞定

  • 为什么strapi不显示data数据

    /api/article

    卡了我好几个小时,终于发现,save按钮只是保存,在save按钮的旁边有一个publish的按钮~