分类目录归档:技术

fd4a959f23df

Swift 是一门好语言

为什么 Swift 是一门好语言?

这样一个想法源自我花了两到三个小时跟着 Apple 官方提供的教程学习后得出的结论。Swift 是一门极易入门的语言,并不是他的语法有多么的简单,而是 Apple 为 Swift 变得更好提供了非常棒的说明。

编程语言一直都是 Geek 们的专属技能,掌握了编程仿佛就可以睥睨众人。所以在某些程度上, Geek 们让编程语言变的难学, Geek 们总是假设所有的使用者都如同它们一样拥有高超的领悟能力。但是,我们也都知道,高智商(120以上)的人总是少数的。对于大多数人来说,Geek 们那晦涩难懂的文档是非常难以理解的。虽然,到了现在,各个语言的文档都有了很棒的 guide ,但是大多数的时候,文档都是非常难以理解的。

编程语言的初衷便是降低人操作计算机难度,虽然这些年来,编程语言的简化确实是趋势(Golang 是个奇葩),但是大多数语言都没有做好自己的 guide。文档的编写者默认把读者放在了和自己一个层面上,然而,你懂的。

我之所以说 Swift 是一门好语言,便是 Apple 在降低 Swift 的学习难度上,做出了自己的努力。移动端的 PlayGround,文档的教程无一不是为了降低语言学习难度而提出的。对于很多初学者来说,他们可以借助这些资源来入门编程。

Apple 在其官网有个 “人人能编程”的页面,在这个页面, Apple 放置了一些用于学习的资源,包括了课程的图书、课程配套软件、以及视频课程。7ljrz

甚至是引入教学中所需的教案也为你提供

nlf7q

以及各种教育资源


 

Apple 在推广 Swift 上不遗余力,为学习者提供了完善的学习方案和资源,可以加快学习者学习完成的速度。也正是因为如此,在我看来 Swift 将会成为日后人们走入编程技术殿堂的最适合的敲门砖。Apple 引以为傲的用户设计也体现在其制作的图书和课程中,简单易懂,简洁明了。

 

如果你想要入门 Swift ,我建议你从《使用 Swift 开发 App 入门课程》开始。

课程配套的源码下载地址:https://developer.apple.com/go/?id=app-dev-curriculum-cn

 

备份

教程:https://postimg.aliavv.com/WordPress/Intro-to-App-Development-with-Swift.ibooks

配套示例代码:https://postimg.aliavv.com/WordPress/App-Development-Curriculum.zip

 
继续阅读

b29692084bbb

WordPress 文件名 MD5 解决中文乱码问题

每次安装完成 WordPress,都会先添加这个函数,来确保我上传的文件不至于乱码,也分享给诸位。

  1. function new_filename($filename) {  
  2.     $info = pathinfo($filename);  
  3.     $ext = emptyempty($info['extension']) ? '' : '.' . $info['extension'];  
  4.     $name = basename($filename$ext);  
  5.     return substr(md5($name), 0, 12) . $ext//截取长度12  
  6. }  
  7.   
  8. add_filter('sanitize_file_name', 'new_filename', 10);  
vba

一些用到的 VBA 语法

VBA 入门教程
Office 中的 VBA 入门:https://msdn.microsoft.com/zh-cn/vba/office-shared-vba/articles/getting-started-with-vba-in-office
Excel  VBA 参考:https://msdn.microsoft.com/vba/vba-excel


学习资源
VBA帮助手册


 
 
我的第一个 VBA 程序,会先弹窗,弹窗内容为"NiHao"自动给 A4 设置值"Nihao"

Option Explicit '强制要求所有变量必须定义
Public Sub mysub() ' 定义一个新的 module
Dim Str As String ' 定义一个变量
Const Status As String = "Hi"   ' 定义一个常量,其值必须在定义时给出
' 这里的内容会被注释掉
' 你可以以任意大小写来编写代码,VBE 会自动将其改为正确的格式,比如 end sub -> End Sub
Let Str = "Nihao"
MsgBox Str
Range("A4").Value = Str ' 设置 A4 格的内容为 Str 的内容
End Sub

如何判断字符串内是否有特定单词

instr("abc","c")   '大于0为包含。
"abc" like "*c*"   'TRUE为包含。

For 循环语法

For i = 2 To 10
        MsgBox Cells(i, "A") Like "*抽奖*"
Next i

 
判断是否包含指定字符,随后,执行特定的参数
Sub docheck()


Dim i  As Integer
i = 2
For i = 2 To 10
        If Cells(i, "A") Like "*somtext*" Then
            Cells(i, "D").Value = "other"
        End If
Next i
End Sub
django logo negative

Django 引入 Simple MDE

我比较喜欢 Django 的一点就是其非常完善的后台,借助这个后台,我可以免去 sideproject 的一大部分开发工作(过去的 sideproject 在后台开发时花费大量的时间,我不会前段真是痛苦)。
作为一个程序员,我自然是更喜欢 markdown 编辑器的,所以我没有在系统中引用 ueditor ,而是选择了 SimpleMDE

安装 Package

执行如下命令安装

pip install django-simplemde

安装完成后,在 INSTALLED_APPS 中添加 simplemde

INSTALLED_APPS = (
    # ...
    'simplemde',
    # ...
)

使用

使用时,只需要在 models 中引用即可

from django.db import models
from simplemde.fields import SimpleMDEField
class Entry(models.Model):
    title = models.CharField(max_length=250, verbose_name=u'Title')
    content = SimpleMDEField(verbose_name=u'mardown content')

配置

使用时,最好是进行一定的配置,这是我的配置,将其粘贴在 settings.py 即可

SIMPLEMDE_OPTIONS = {
    'placeholder': '支持 Markdown 语法',
    'status': False,
    'autosave': {
        'enabled': True
    },
    'hideIcons': ["guide", "heading"],
    'toolbar': False,
    'toolbarTips': Flase,
    'spellChecker':False
}

具体的配置项可以在 https://github.com/sparksuite/simplemde-markdown-editor#configuration 找到

django logo negative

Django Models 参数

我创建model必加的字段


class Category(models.Model):
    pub_date = models.DateTimeField('发布日期',auto_now_add=True)
    update_date = models.DateTimeField('更新日期',auto_now=True)
    sort = models.IntegerField("序号",default=99,help_text="序号越小越靠前")
    def __unicode__(self):
        return self.title
    def __str__(self):
        return self.title
    class Meta:
        verbose_name = '目录'
        verbose_name_plural = '0-目录'
        ordering = ['sort']  # 按照哪个栏目排序
        get_latest_by = 'pub_date'
black and yellow box on white table

创建了新的 Django Project 后需要设置的

  1. 创建 Env
    virtualenv venv
  2. 生成 git 目录
    git init
  3. 加入gitignore
    # Byte-compiled / optimized / DLL files
    __pycache__/
    *.py[cod]
    # C extensions
    *.so
    # Distribution / packaging
    bin/
    build/
    develop-eggs/
    dist/
    eggs/
    lib/
    lib64/
    parts/
    sdist/
    var/
    venv/
    collectstatic/
    *.egg-info/
    .installed.cfg
    *.egg
    # Installer logs
    pip-log.txt
    pip-delete-this-directory.txt
    # Unit test / coverage reports
    .tox/
    .coverage
    .cache
    nosetests.xml
    coverage.xml
    # Translations
    *.mo
    # Mr Developer
    .mr.developer.cfg
    .project
    .pydevproject
    # Rope
    .ropeproject
    # Django stuff:
    *.log
    *.pot
    # Sphinx documentation
    docs/_build/
    # editor
    .vscode
    # database
    db.sqlite3
  4. 修改中文
    LANGUAGE_CODE = 'zh-hans'
    TIME_ZONE = 'Asia/Shanghai'
  5. 设置静态文件目录
    STATIC_ROOT = 'collectstatic'
  6. Database
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql', #数据库引擎
            'NAME': 'user_im',                       #数据库名
            'USER': 'root',                       #用户名
            'PASSWORD': '',                   #密码
            'HOST': '',                           #数据库主机,默认为localhost
            'PORT': '',                           #数据库端口,MySQL默认为3306
            'OPTIONS': {
                'autocommit': True,
            },
        }
    }
    
dual screen 1745705 640

运营用加强 Markdown 编辑器

初衷

我一个朋友需要参与公司针对 V2ex 的运营,而 V2ex 如果想要发富文本,就需要 markdown 语法,对于他一个长期担任运营岗的人来说,Markdown让他十分困扰。虽然有很多不错的编辑器,但是由于他会有一些特殊的需求,所以还是十分不舒服。因此我便打算帮他做一个运营用的插件,帮他完成他所需要的特殊功能

特性

  • 满足运营者常用功能需求(H1-H6)
  • 提供插入新窗口打开连接的功能
  • 提供插入含连接的图片的功能
  • 插入含描述的图片
  • 选中文字标红
  • 快速打开图床

Demo

http://co.ixiqin.com

功能说明

插入新窗口打开连接

可以在打开的对话框中输入标题和连接。自动生成一个基于HTML的新页面打开连接
需要注意的是,此连接的会生成在文章尾部,需要自行复制到适当位置。

插入含连接的图片

可以在打开的对话框中输入连接、标题、图片地址、图片描述生成对应代码。
需要注意的是,此连接的会生成在文章尾部,需要自行复制到适当位置。

插入含描述的图片

可以在打开的对话框中输入图片地址、图片描述生成对应代码。
需要注意的是,此连接的会生成在文章尾部,需要自行复制到适当位置。

选中文字标红

选择要标红的文字,点击特色功能区的按钮,即可对指定文字进行标红处理。

快速打开图床

编辑器未做图片上传,故而提供了一个图床的地址,可以将图片上传到sm.ms,复制其生成的图片的连接,使用菜单栏中的工具添加即可。

源码地址

https://github.com/bestony/CoEditor

涉及技术

前端开发、JavaScriptEditor.md