源代码为你而开吗??Is Open Source for You? (转)

源代码为你而开吗??Is Open Source for You? (转)[@more@]

apache, Cocoon and Linux aren't just useful programs, they're best-of-breed. Some of the more intemperate free software boosters, intoxicated by this success, claim that proprietary software is obsolete and that it's immoral to keep your source code secret. Well, maybe. Part 1 of 2.

by Rick Wayne

If your team is anything like mine, everyone has a nickname. In some companies, a newcomer practically needs a shadow phone book just to follow a conversation. Me? Honest, I have no idea why they call me Gadget Boy. Sure, I like cool stuff, but who doesn't?

I didn't bring open source software to our group; Science Girl was using perl long before I came on board. I was responsible for our first Apache installation, though, back before Time and Newsweek had ever heard of open source. Then The Finn needed an sql database; MYSQL was stable, open and free. I tried out Linux on a server. Pretty soon I couldn't stop. Every day, you could hear the Gadget Boy Battle Cry: "Oooh, I NEED that!"

We have JServ, Samba, Logcheck, tomcat and Tripwire. Cocoon, Portsentry, Jdom, OpenSSH and Ethereal. Xerces, Xalan and all the rest of the X files. Most of it works quite well, and lets the small, university-based group I'm part of do things we could never accomplish if we had to write everything ourselves or buy commercial (the Free Software Foundation prefers the teRM "non-free") alternatives.

But what about you? Do you have the luxury of selecting your own architectures and technologies? Can you afford to give your source away to your competitors? The answer, of course, is "it depends." In the first half of this article, I hope to give you some flavor for what "it" depends on. I'll talk about the viability of open source as a development model. Next month, I'll examine a sample project, implemented with open source tools.

What's the Buzz?
So what does "open source" mean, exactly? The Open Source Definition (www.opensource.org) and the gnu Public License (www.gnu.org) go into a great deal of sometimes conflicting detail on this, but in the end, open source boils down to software whose license terms allow you to read, compile, redistribute and modify the source code. (Contrast this with "public domain" source, which has no restrictions whatsoever.)

In 1985, GNU Project founder Richard Stallman created the Free Software Foundation, a tax-exempt charity for what he called "free software." The term confused many of us. Did that translate to "you don't have to pay money for this," or "you're free to copy and modify the source code"? It turned out they mostly meant the latter, as explained in the famous "it's not free as in 'free beer' but free as in 'free speech'" analogy.

DeteRmined to circumvent the confusion and the combativeness that was perceived to emanate from the free software camp, in 1998 a group of hackers met in Palo Alto, California and brainstormed a new name for nonproprietary software, to Stallman's dismay. To read Stallman's refutation of the "open source" label, go to www.gnu.org/philosophy/free-software-for-freedom.html.)

Open source projects have undeniable counterculture cachet. It's fun to be fashionable, but just what does it get you? First, let's look at the perks and pitfalls of using open source tools. Taking your own projects into the open source realm is another can of worms, entirely.

Shallow bugs
According to its advocates—and setting aside the social agitprop for now—the strongest advantages of open source software are quality and reliability. If a project can attract enough users and developers, it can leverage The Cathedral and the Bazaar author Eric S. Raymond's famous epigram: "Given enough eyes, all bugs are shallow." My experience has been mixed. Infrastructure software tends to be world-class and rock-solid. End-user applications, however, often haven't yet had enough trips around the spiral, and many of them are flakier than their proprietary counterparts. But they're disarmingly frank about it—unlike some of their proprietary brethren with a penchant for "gamma testing" (shipping known buggy software). If you're using version 0.2 of a tool, you know there are going to be bugs.

Another cited advantage to having the source is the ability to debug it, add your own features or learn how things work. I have to admit that diving into, say, the XFree86 X Window server is a pretty daunting prospect to me. But if my business depended on it, I'd don my snorkel and flippers.

Finally, when you use open source software, you're not locked into a single company. You do become somewhat beholden to a community, but on the whole, they're usually willing to take suggestions. To me as an in-house developer, this is a compelling argument, and at least one major tools developer sees it the same way. While developing the Kylix rapid application development (RAD) environment for Linux, Borland had to work closely with open source projects (particularly the system-libraries group).

"From our standpoint, we're not making a religious statement in open source," says Michael Swindell, director of product management for RAD products at Borland in SCOtts Valley, California. "We're a builder of tools, and we need to make sure that our tools will fit whatever model the user wants to use. One of the great things we've found about the open source/free software community is the williNGNess to listen, to take fixes and to talk about them."

Of course, every silver lining has its cloud. The level of documentation and support for open source tools varies wildly. For example, Apache, Linux, MySQL and PostgreSQL all have manuals, books, consulting and phone support to rival their proprietary counterparts. At the other end of the spectrum, suppose you want to work with the Cocoon ESQL tag library (I certainly do, as it's a terrific little thing). The single web page simply refers to two example files, then chills the blood with "The ultimate reference is, of course, the source code…" Gulp.

This points out another common problem with open source software: great programming, but not much process until later in the life cycle. As a product's popularity climbs, it attracts more resources and can move from "inspired hacking" to "software engineering."

Finally, what about windows? Open source is closely identified with the GNU project, Linux and unix in general—do any of these things work in Windows? Indeed they do—some of them, anyway. Some (Mozilla, for example) even use microsoft's compilers, while others use the Cygnus Windows Toolkit (redhat.com/cygwin/">http://sources.redhat.com/cygwin/) to provide Unix-derived programs the environment they expect. In general, the big, popular products such as Apache and MySQL tend to have direct Windows ports available, even if the Windows support lags; the Apache Server Web page, for example, currently says that the win32 port of Apache is "not as stable as the UNIX version." The Macintosh isn't completely ignored, but it's by no means as easy to find as Windows support or Unix ubiquity.

Property, Shmoperty
The list of open source projects that have achieved at least some modicum of success is impressive, and there's a boatload of wannabes. SourceForge (.NET/">http://sourceforge.net) is a free hosting service for open source projects. Its Web site lists 16,620 hosted projects as I write this (having grown by some 1,500 projects since I started researching this article in January).

Proponents argue that such products as Apache, Cocoon and Linux are not just useful, they're best-of-breed—some define whole new categories. Some of the more intemperate boosters, intoxicated by this success, claim that proprietary software is evolutionarily obsolete, that the very idea of intellectual property rights in software is a dead end, that it's immoral to keep your source code secret and that cooperation will win over competition everywhere, in every domain, every time.

Well, maybe. I'm dating myself terribly here, but my generation heard a similar refrain 30 years ago: "It'll all be beautiful if we just join hands…"

Harsh I'm not. I really am a believer in what free (as in speech) software can accomplish. Frankly, whenever I have a choice, I go for the open source process and its products every time. But don't try to tell me that there's only one model for developing software—for one thing, everybody in the industry has heard that tune before. "It's structured programming! It's artificial intelligence! It's functional programming! It's objects! It's the Capability Maturity Model! It's components! It's UML!"

For another, counterexamples are just too easy to find. The One True Way? Tell that to management, when you explain why it took your team eight months to create a robust, scalable e-business infrastructure, and your biggest competitor did it in three weeks. "Well, see, they DOWNLOADed our code and…" Don't let the door (more likely, your CTO's foot) hit you in the fanny on the way out. Or perhaps you really have devised some high-flying, better software mousetrap for end users, and want to reap the rewards for awhile before you fall back down in the service-model weeds with the rest of us. More power to you.

But clearly, once we've dodged the wilder-eyed warriors of the Free Software Jihad (you can even run Windows if you want—honest!), there's plenty to be gained from the movement. Many of us can even contribute without crippling our companies' competitive positions. How?

It's a Service, Not a Product
For one thing, you can just use the tools. In the second part of this article, I'll show you an example of doing just that, in a real-world, three-tier project. If you can get the job done this way, you really can reap lower overall cost, crash-resistant systems and freedom from vendor lock-in. As for your contribution, simply by expanding the ubiquity of, say, Apache, you'll be helping the project, especially if you remember those bug reports.

If you want to get more involved, you can participate in development. Many open source authors have "real" jobs just like you and me, but they either work on open source products in their free time or get their employer's permission to do a bit on company time. These projects require more than programmers, too—most have a crying need for writers, testers, analysts and designers.

Finally, you might take the plunge into making your company's projects open source. This is the scary one, and it works only for certain products—those you want to promote as a platform to leverage other products, perhaps, or ones for which you can invent a business model based on services, or ones without much of a direct-sales revenue stream. In Eric Raymond's essay, "The Magic Cauldron", he argues that today, "software is largely a service industry operating under the persistent but unfounded delusion that it is a manufacturing industry."

Scary, indeed. Still, it worked for TCX, the company that wrote MySQL, and it seems to be working for Netscape. Borland should be shipping Kylix ("RAD for Linux") by the time you read this, with its open source CLX component library, and has brought Interbase into the open source domain.

"It's certainly a challenging road," says Ted Shelton, a Borland senior VP and chief strategy Officer. He's confident, however, that the commitment to open source was the right decision: "We've already seen an enormous return on open source—they can do it much more rapidly and cost-effectively than we'd ever be able to do internally." For example, he says, when Interbase went open source, the community pounced on a security problem in Interbase "that had never been uncovered by our developers. It is different, though, the main difference being that the community talks back to you and tells you 'No, I want to work on this instead.' [Laughs.] At the end of the day, when you incorporate changes back into your final version, you have the chance to decide whether or not to include it."

Raymond points out that most of us are working on in-house projects anyway, and on maintenance at that—what's the harm in open sourcing the code, so long as it doesn't contain business secrets? (See "The Magic Cauldron" for some thought-provoking details.) Borland's Shelton also points out that if you're doing proprietary in-house development, "turnover in engineering can lead to mysteries in your code;" having an external community, too, can also insulate you to some extent.

Ready to Open Up?
So, which projects are suitable candidates for migrating to open source? Four principles define whether throwing competitive caution to the wind—at least with regard to writing or getting your code or tools—is advisable.

Rule 1: Horizontal Is Good. Generally speaking, the broader the market is for a piece of software, the better chance an open source flavor of it can succeed and perhaps even make money. Linux and Apache are the most obvious examples. Everybody needs an operating system, and darned near everybody needs a World Wide Web server. Not only does the huge potential user base mean a large pool of developers, but the larger the added-value services market, the smaller piece you need of it to survive. Look at Red Hat and Mandrake; not everybody who runs Linux needs the services they provide. But there are a lot of Linux users out there; even a few percent of those millions is still a healthy living. (Figures on the installed base for Linux are notoriously messy—one study by International Data Corporation put purchased, shipped Linux distributions last year for servers alone at around 1.5 million; Red Hat and Mandrake claim anywhere from a quarter to over half of that. Add in the downloaded copies, desktop purchases and multiple installations from one purchased CD-ROM, and the number of Linux and GNU users might reasonably be 20 million, according to Stallman.)

In fact, the larger the market, the more chance an open source product has to outplay, outwit and outlast its proprietary competitors. As the market expands and matures, the margins get thinner and thinner, and the value of the shrink-wrapped box pales in comparison to the support services required by either product. In the end, it gets easier and easier to vote the priciest competitors out of the tribe.

Rule 2: Applications Are Hard. Hundreds of open source programmers have already pounded on infrastructure: operating systems, networking and such. Their work is debugged, in place and free (as in free beer). If your products are in this space, you might as well open source 'em. But what about a video-editing suite or a new game? Your company has probably put a great deal of effort into novel algorithms, not to mention the GUI, and wants to see some return.

Caleb Pourchot is the director of engineering for Sonic Foundry in Madison, Wisconsin, which makes shrink-wrapped audio- and video-editing applications. "There's no incentive for us to go open source," he says, since "there's no really valid business model there." Aside from the revenue considerations, Pourchot doubts that his company could build much of an external developer community: "The code base is such that there is probably only a handful of people in the world who would, one, care enough to try, and two, actually have the chops to accomplish something in the code."

Rule 3: Hackers Hack Hackware. Every programmer needs an operating system; most want a better one, which explains why Linux can draw on a huge, motivated talent pool, year after year. Programmers can't work without programming languages, either, so compilers, editors and IDEs tend to improve in a real hurry, under the "eat your own dog food" model of using what you write. If you start an open source project whose end product is useful to programmers, you'll rapidly achieve a critical mass of dog-food gourmets. Conversely, tools for "real users" languish by comparison. For example, Linux and Apache are mission-critical systems for us; they run reliably for months without my having to touch them. I also have Abiword and KWord on my personal Linux workstation, but to write this article, I had to reboot into Windows and use Word. Heresy? No, utility. For one thing, AbiWord crashed, and upon restarting, haughtily informed me that this article was "a bogus document." (From my editor, that's painful; from some bag of bits, it's intolerable.) For two more: outlining and word counts, folks. I need those and the open source alternatives don't have 'em. So why haven't I put the features I need into AbiWord or KWord? My only excuse is that to me, the features aren't worth the time commitment when alternatives are available.

Rule 4: Services Become Tools, Tools Become Commodities, Commodities Become Services Again. If you're an in-house developer like me, much of your work consists of one-off projects. You're not really working on products, you're providing a service: solving your users' problems. But over time, the same problems crop up again and again, and it becomes cost-effective to create (and perhaps sell) a reusable tool to solve them. If enough people need the tool, competition drives down prices, thinning the margins until little profit can be made selling the tools itself; users look for added value from services (Sun, Microsoft and especially ORACLE have been talking this idea up lately), or tend to rely on a brand name. At this point, consider taking the project open source—there's little profit to lose, so you're better off with a service model anyway.

Oddly Enough, It Works
Not every project is suitable for open source, and certainly not every open source project succeeds. But the ones that work tend to work very well indeed, delivering feature-rich, reliable software like Linux, Apache and Samba. Largely, that's due to the skill and dedication of the developers, who are drawn not from the ranks of the unemployed, but from corporate engineering departments.

As Borland's Shelton says: "We talk about them as wild-eyed, hairy independents, but a lot of developers have corporate jobs during the day, and do open source on their own time. Corporate developer by day, Spider-Man by night."

Next Time
We'll look at putting a project together. Our goal will be to serve documents from a single XML source to any of a variety of formats and platforms (the Web, static pages on a disconnected machine, hardcopy, PDAs). We'll collect and supply data with a three-tier system, making use of the Apache Web server, Apache Tomcat, an SQL database, Xerces, Xalan, FOP and Cocoon. See you then!

What Does 'Free' Mean, After All?
The official definition from the Free Software Foundation

According to the definition posted at www.gnu.org/philosophy/free-sw.html, "'Free software' refers to the users' freedom to run, copy, distribute, study, change and improve the software. More precisely, it refers to four kinds of freedom, for the users of the software:

  • The freedom to run the program, for any purpose (freedom 0).
  • The freedom to study how the program works and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to improve the program and release your improvements to the public, so that the whole community benefits. (freedom 3). Access to the source code is a precondition for this.

Another important nonproprietary concept is that of "copyleft," which is essentially the opposite of "copyright." Rather than putting a program out in the public domain and risking that it become the kernel of a proprietary product, the free software principle is to copyleft the program by requiring that "anyone who redistributes the software, with or without changes, must pass along the freedom to further copy and change it."

—A. Weber Morales

 

Recommended Readings
Author Eric Raymond manages to explain rather than condemn

I urge you to pick up Open Sources: Voices from the Open Source Revolution (edited by Chris DiBona, Sam Ockman and Mark Stone; O'Reilly, 1999). The entire book is available online. Eric Raymond's "Magic Cauldron" essay is notably free of the animus that taints so much of the debate about open source, and is included in his book The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary (O'Reilly, 1999).

A perusal of SourceForge (http://sourceforge.net) will inform, amuse and point you to projects that need your help; I found their frequently asked questions page particularly entertaining. Visit San Francisco-based www.collab.net if you want to click around where IBM and Sun Microsystems have their open source efforts hosted. And if you missed Scott Ambler's column on internal open source ("Reuse Through Internal Open Source," Thinking Objectively, Dec. 2000), do yourself a favor: go back and read it! It offers a roadmap for starting open source projects in your company. Finally, of course, there are the granddaddy sites themselves: www.gnu.org and www.opensource.org.

—R. Wayne

 

Open Source Tools for Web Development

Of the thousands of free programs available, we've found these particularly useful

Software Description We Got Ours From Comments Linux Operating system www.mandrake.com excellent for servers; useful as a developer抯 desktop OS. EGCS/GCS C, C++, Objective-C, FORTRAN, Java compiler www.gnu.org Included in Linux distributions. Apache Web server www.apache.org If you haven抰 tried it, you should. Samba Windows/Unix/Mac interoperability suite www.samba.org Allows Linux, Unix, Mac and Windows users to transparently mount each others?file systems. Perl Script/text processing www.cpan.org A language. A way of life. No cure is known. MySQL SQL database download.sourceforge.net
/mirrors/mysql
Lean and fast. APIs for most languages available. Xerces XML parser xml.apache.org Supports XML Schema, DOM Level 2 and SAX Version 2. Xalan XLST processor xml.apache.org Tran sforms SML documents via xsl to other forms of XML, HTML and so on. FOP XML/DOM/SAX-to-PDF processor xml.apache.org Driven by XSL formatting objects. Cocoon Web publishing framework xml.apache.org Ties XML and database content together for presentation via XML, PDF, HTML. Implements XSP, an alternative to Active Server Pages and Java Server Pages.  

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-1004505/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-1004505/

Android Studio Debug Android Open Source Project 调试前的准备工作环境搭建 下载源代码Source Websit 按照官方下载和构建的教程,编译源代码树,生成system.img 使用命令行工具,输入emulator启动模拟器,加载system.img。 在编译时,由于我的设备是x86_64位(Mac可以通过命令行 uname -a 查看),所以选择aosp_x86_64-eng。编译目标有很多个,格式为BUILD-BUILDTYPE,BUILDT 阅读详情

相关推荐

攻防世界Re新手题——open-source

open-source 1**. 看源代码** #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { if (argc != 4) { printf("what?\n"); exit(1); } unsigned int first = atoi(argv[1]); if (first != 0xcafe) { printf(

Wejh的博客 539

从理论到实践:Awesome Open Hardware中的论文与演讲带你深入源硬件

源硬件正以前所未有的速度改变着科技领域的创新模式,而**Awesome Open Hardware**项目则是这一变革中不可或缺的资源宝库。本文将带你探索该项目中精选的论文与演讲内容,从理论基础到实践应用,全面理解源硬件的发展脉络与核心价值。无论是刚入门的爱好者还是寻求深度研究的专业人士,都能在这里找到启发与方向。 ## 为什么源硬件需要学术与实践的双重滋养? 源硬件不仅仅是代码与设计

gitblog_00308的博客 1119

linaro:Open source software for ARM

一、嵌入式系统采用交叉编译的方式在本机编译目标系统的可执行软件,在这个过程中需要使用交叉编译工具链,包括交叉编译的编译器、连接器、目标库等。如果在ARM目标板运行Linux系统,因为Linux内核代码使用GCC编译器,为此GNU提供了GCC编译器针对ARM目标平台的支持。由于GC

嵌入式系统开发专栏 3527

攻防世界open-source

第三个变量需要second的值不能满足值➗5余3,或者➗17不等于8,随便找个满足条件值就行,我们就用25。第四个if判断用strcmp判断前后两个值是否相等,相等返回0,所以argv[3]值为h4cky0u。我们看下代码就知道,flag应该藏在倒数第四行计算hash中,看一下上面几个if判断。如图,第一个if判断要argc=4,否则退出,所以这时候我们设argc为4。把这两个东西组合起来,用最新的g++编译一下就会得到标题中的警告。另写个c代码,把上面的变量赋值,然后直接运行就出结果了。

A_fish_like_sing的博客 555

Quantum Open Source Foundation Web Portal 教程

Quantum Open Source Foundation Web Portal 教程 项目介绍 该项目是量子源代码基金会(Quantum Open Source Foundation, 简称QOSF)的官方网站仓库。它作为量子计算领域源软件的通用信息源,致力于推广和发展量子计算的源工具及标准。该网站基于CC0-1.0许可协议,鼓励知识共享,并提供了一个社区平台,促进量子计算领域的发者...

gitblog_00368的博客 1069

源项目教程:Open-Source-Programs

源项目教程:Open-Source-Programs 1. 项目的目录结构及介绍 Open-Source-Programs/ ├── README.md ├── LICENSE ├── CONTRIBUTING.md ├── data/ │ ├── programs.json │ └── contributors.json ├── docs/ │ ├── index.md │ └...

gitblog_00672的博客 774

Download all Apple open source OS X files at once

While it is well known that Mac OS X contains open source code, how to access and download that source code is perhaps less well known. Apple publishes all its open source code on their Apple Open Sou

Code Heaven 2285

什么是源?Open Source Education Path 带你 10 分钟读懂源的前世今生

**什么是源?** 简单说,就是软件的源代码向所有人公,任何人都可以查看、使用、修改和分发它。与"闭源"软件(源代码被锁在保险柜里)不同,源把"配方"也交给了全世界。今天,从安卓手机到 Linux 服务器,从人工智能框架到你的购物网站,几乎处处都有源的身影。而 Open Source Education Path(源教育路径)这个项目,正是为想弄懂源、参与源的新手准备的一份系统化学习

gitblog_00420的博客 997

探索源代码替代品:GitCode上的`btw-so/open-source-alternatives`

在软件发的世界中,找到可靠且适合您需求的源工具至关重要。GitCode 上的 `btw-so/open-source-alternatives` 项目就是这样一个资源库,它为各种流行的应用和服务提供了源代码的替代方案。这篇文章将深入探讨这个项目的特性、技术分析以及如何利用它来丰富您的开发工具箱。 ## 项目简介 `btw-so/open-source-alternatives` 是一个...

gitblog_00034的博客 777

新手必看:Open-source BR平台使用完全指南

Open-source BR是一个专注于展示巴西源项目的平台,旨在为发者提供发现和参与优质巴西源项目的便捷途径。无论你是刚接触源的新手,还是有经验的发者,都能在这里找到有价值的资源和机会。 ## 什么是Open-source BR? Open-source BR(全称GitHub加速计划 / op / opensource-br)是一个专门用于展示巴西源项目的空间。该平台汇集了众多

gitblog_00878的博客 274

Open Source for the Operations Research Community

Home News Projects Download Contributing Members FAQ Resources PreviousNext Open Source for the Operations Research Community

黄梅时节家家雨,青草池塘处处蛙 645

Android is now available as open source

最近的一段时间都在关注着Android的发展,并对此充满激情,今天她的源代码终于源了,实现了她的承诺……相关资料请参阅:http://source.android.com/posts/opensourceAndroid is now available as open source Oct 21, 2008 7:52 AM posted by Dave Bort  [updated

梦幻冰舞 752

【论文阅读笔记】《CodeS: Towards Building Open-source Language Models for Text-to-SQL 》

本文提出源语言模型系列CodeS(1B-15B参数)以解决Text-to-SQL任务依赖闭源大模型的问题。通过增量预训练21.5GB SQL语料,结合模式链接优化和双向数据增强技术,CodeS在Spider、BIRD等9个基准上取得SOTA结果,参数规模缩小10-100倍。创新点包括:1)填补源Text-to-SQL模型空白;2)增量预训练提升SQL能力;3)双向数据增强增强领域适应。实验显示CodeS在准确性和鲁棒性上优于GPT-4等方法,同时源模型降低了部署成本。不足在于15B模型可能存在过拟合,

2402_86344613的博客 1253

The Open Source Definition 源定义

The Open Source Definition (源定义)Introduction(说明)Open source doesnt just mean access to the source code. Thedistribution terms of open-source software must comply with thefollowing criteria:源代码

Rambo的博客 1877

【攻防世界】reverse | open-source 详细题解WP

摘要:本文详细解析了攻防世界逆向题"open-source"的解题过程。题目给出C语言源码,要求通过分析参数校验条件(参数数量、数值比较、模运算等)找到符合条件的输入,最终计算得到flag"c0ffee"。解题关键在于:1) 分析参数校验逻辑;2) 求解满足模运算条件的数值;3) 复现hash计算过程。该题展现了CTF逆向中通过代码审计获取flag的典型方法,适合逆向入门学习。

2301_80637449的博客 1203
上一篇: 关于对于VC/MFC/ATL的评论问题 (转)
下一篇: 软件工程能帮多大忙? (转)
cuiji1279
博客等级 码龄10年 13粉丝 591原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值