博客

  • 探索 JBang——Java 开发的全新体验

    前言

    Java 开发者们,无论您是学生、教育者还是专业开发人员,您是否曾经希望有一种更简单、更高效的方式来创建、编辑和运行 Java 程序?今天,我们将带您了解一个令人兴奋的工具——JBang。它不仅简化了 Java 应用的开发过程,还提供了丰富的功能和广泛的支持平台。

    什么是 JBang?

    JBang 是一个旨在让学生、教育者和专业开发人员能够轻松地创建、编辑和运行自包含的源代码 Java 程序的工具。借助 JBang,您可以在几乎任何操作系统上无缝地运行 Java 程序,而且无需复杂的设置过程。

    多平台支持

    安装与运行

    JBang 可以安装并运行在 Windows、Linux、macOS、Docker 以及 GitHub Actions 上。此外,它还可以通过 Maven 和 Gradle 插件使用。这意味着无论您使用什么开发环境,都可以轻松集成 JBang。

    无需预装 Java

    如果您的系统上没有安装 Java,JBang 也能自动下载所需的 Java 版本。这极大地简化了初学者的上手过程。

    嵌入式依赖管理

    自动获取依赖

    通过 JBang,您可以直接在源代码中使用 //DEPS group:artifact:version@Grab 注解来自动获取任何依赖项。这使得依赖管理变得前所未有的简单和直接。

    //DEPS org.slf4j:slf4j-api:1.7.30
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    public class HelloWorld {
        private static final Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    
        public static void main(String[] args) {
            logger.info("Hello, World!");
        }
    }

    JBang AppStore

    JBang 提供了一个 AppStore,您可以在其中找到其他人发布的应用程序,或者将您自己的应用程序发布到一个由 git 支持的 jbang-catalog.json 中。这为开发者提供了一个共享和发现工具的平台。

    发布与发现应用

    通过 JBang AppStore,您可以轻松地发现和使用其他开发者发布的应用程序,也可以发布自己的应用程序供其他人使用。这种共享机制促进了开发者之间的交流和协作。

    IDE 集成

    无论您使用的是 Intellij、Eclipse、Visual Studio Code、Apache Netbeans,还是 vim 和 emacs,JBang 都能轻松集成。它提供了适当的内容辅助和调试支持,使得开发过程更加流畅和高效。

    轻松编辑与调试

    JBang 提供了丰富的编辑和调试支持,让您在熟悉的开发环境中也能享受到 JBang 带来的便利。无论是代码补全、语法高亮还是调试功能,JBang 都能很好地与您的 IDE 集成。

    选择合适的 Java 版本

    JBang 支持从 Java 8 及更高版本的任何 Java 版本。您可以根据项目需求自由选择最合适的 Java 版本,享受最新的语言特性和性能提升。

    灵活的版本支持

    无论是需要使用 Java 8 的老项目,还是想要尝试最新的 Java 版本,JBang 都能满足您的需求。这种灵活性使得 JBang 成为一个非常适合多种场景的工具。

    用户体验

    很多用户都对 JBang 的使用体验表示赞赏。正如 Oliver Weiler 所说:“第一次使用 JBang 的体验真的很棒!你可以感觉到 @jbangdev 是用爱在做这件事!”

    社区反馈

    通过社交媒体和开发者社区,许多用户分享了他们的使用体验和心得。JBang 的用户友好性和强大的功能得到了广泛的认可和赞誉。

    总结

    JBang 为 Java 开发者提供了一种全新的开发体验。无论是简化的依赖管理、多平台支持、无缝的 IDE 集成,还是便捷的 AppStore,JBang 都展示了其强大的功能和极高的可用性。如果您还没有尝试过 JBang,现在就是开始的好时机!

    欲了解更多信息并下载 JBang,请访问 JBang 官方网站


    参考文献:

    JBang 官方网站

  • 在纯Java文件中推理Llama 2

    在现代人工智能领域,推理大型语言模型(LLM)已经成为一个重要的应用场景。GitHub上的项目 mukel/llama2.java 提供了一种使用纯Java代码进行Llama 2推理的简洁实现。本文将详细介绍该项目的背景、构建方法及性能表现。

    背景介绍

    Llama 2是由Andrej Karpathy开发的一个非常简单的LLM推理实现。该项目的Java版本旨在提供教育价值,并用于在JVM上测试和调整编译器优化,特别是针对Graal编译器的优化。这一Java移植版本最初参考了llama2.scala。

    构建与运行

    要构建和运行该项目,您需要Java 21+,特别是其中的MemorySegment mmap-ing功能。以下是具体的构建步骤:

    1. 下载必要的文件: wget https://github.com/karpathy/llama2.c/raw/master/tokenizer.bin wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin
    2. 手动构建与运行: javac --enable-preview -source 21 --add-modules=jdk.incubator.vector Llama2.java java --enable-preview --add-modules=jdk.incubator.vector Llama2 stories15M.bin
    3. 使用JBang直接运行: jbang Llama2.java stories15M.bin
    4. 使用Makefile和run.sh脚本: make # 可选,run.sh已经包含了make JAVA_HOME=$GRAALVM_HOME \ JAVA_RUNTIME_OPTIONS=-Djava.util.concurrent.ForkJoinPool.common.parallelism=8 \ ./run.sh stories15M.bin

    生成本地镜像

    使用GraalVM可以创建一个独立的本地镜像:

    JAVA_HOME=$GRAALVM_HOME NATIVE_IMAGE_OPTIONS="-march=native" make native-image
    ./llama2 stories15M.bin

    或者使用Profile-Guided Optimizations (PGO):

    JAVA_HOME=$GRAALVM_HOME \
    NATIVE_IMAGE_OPTIONS="--pgo-instrument -march=native --initialize-at-build-time=Llama2 -Dllama2.VectorAPI=false" \
    make native-image
    
    # 生成默认的iprof配置文件
    ./llama2 -Djava.util.concurrent.ForkJoinPool.common.parallelism=0 stories15M.bin
    
    # 构建优化后的镜像
    JAVA_HOME=$GRAALVM_HOME \
    NATIVE_IMAGE_OPTIONS="--pgo -march=native --initialize-at-build-time=Llama2 -Dllama2.VectorAPI=false" \
    make native-image
    
    # 优化后的运行速度应该比普通镜像快约2倍
    ./llama2 stories15M.bin

    性能表现

    以下是该项目在不同配置下的性能测试结果(基于AMD Ryzen 3950X 64GB,Arch Linux):

    单线程测试

    模型每秒处理Token相对于llama2.c的加速实现
    stories15M.bin3631.0llama2.c
    stories15M.bin2370.65llama2.java
    stories110M.bin51.711.0llama2.c
    stories110M.bin42.200.81llama2.java
    llama2_7B.bin0.921.0llama2.c
    llama2_7B.bin0.880.95llama2.java

    多线程测试

    模型每秒处理Token相对于llama2.c的加速实现
    stories15M.bin12331.0llama2.c
    stories15M.bin4380.35llama2.java
    stories110M.bin901.0llama2.c
    stories110M.bin800.88llama2.java
    llama2_7B.bin1.681.0llama2.c
    llama2_7B.bin1.650.98llama2.java

    需要注意的是,Java版本在多线程情况下的性能提升并不显著,这主要是由于内存带宽限制所致。

    结论

    mukel/llama2.java项目展示了如何使用纯Java代码实现Llama 2推理,并在一定程度上达到了与原始C实现相当的性能。尽管当前版本的性能尚未完全优化,但其作为教育工具和编译器优化测试平台已经展现出巨大潜力。

    参考文献:GitHub – mukel/llama2.java

  • 探索 Llama 3 在 Java 中的实际应用

    引言

    在现代人工智能领域,模型推理的效率和方便性是技术人员关注的核心问题。如今,我们将目光投向一个名为 Llama 3 的项目,该项目旨在在 Java 环境中实现 Llama 3 的推理。这一项目不仅是其前身 Llama2.java 的延续,还在多个方面进行了优化和改进。让我们深入了解这个项目的细节及其实现方法。

    项目背景

    Llama 3 是基于 Andrej Karpathy 的 llama2.c 项目的一个扩展版本。Llama3.java 通过单个 Java 文件实现了 Llama 3 的推理,除了教育价值外,还为在 JVM 上测试和调整编译器优化和功能提供了便利,特别是针对 Graal 编译器的优化。

    项目特点

    1. 单文件实现,无依赖

    Llama3.java 的一大特点是其实现是通过单个 Java 文件完成的。这种设计简化了项目的依赖管理,使得项目的部署和维护更加便捷。

    2. 支持多种量化格式

    项目支持 GGUF 格式解析,并且提供了对 Q8_0 和 Q4_0 量化的支持。Q4_0 量化模型由于其较小的体积和较高的运行效率,成为推荐使用的模型。

    3. 高效的矩阵-向量乘法

    针对量化张量,项目使用了 Java 的 Vector API 实现了快速的矩阵-向量乘法。这一实现提高了推理的运行速度,特别是在处理大规模数据时。

    4. 简单的命令行界面

    Llama3.java 提供了一个简单的命令行界面,支持 --chat--instruct 模式,使用户能够方便地与模型进行交互。

    项目设置与运行

    下载量化模型

    首先,需要从 Hugging Face 下载纯 Q4_0 和(可选的)Q8_0 量化的 .gguf 文件。推荐使用大约 4.3GB 的 Q4_0 量化模型:

    curl -L -O https://huggingface.co/mukel/Meta-Llama-3-8B-Instruct-GGUF/resolve/main/Meta-Llama-3-8B-Instruct-Q4_0.gguf
    
    # 可选地下载 Q8_0 量化模型(约 8GB)
    # curl -L -O https://huggingface.co/mukel/Meta-Llama-3-8B-Instruct-GGUF/resolve/main/Meta-Llama-3-8B-Instruct-Q8_0.gguf

    手动量化

    如果需要生成纯 Q4_0 量化模型,可以使用 llama.cpp 提供的量化工具从高精度的 .gguf 源文件生成:

    ./quantize --pure ./Meta-Llama-3-8B-Instruct-F32.gguf ./Meta-Llama-3-8B-Instruct-Q4_0.gguf Q4_0

    构建与运行

    Llama3.java 需要 Java 21 及以上版本,特别是 MemorySegment mmap-ing 功能。可以使用 jbang 工具运行:

    jbang Llama3.java --help

    或者直接执行:

    chmod +x Llama3.java
    ./Llama3.java --help

    使用 Makefile 手动构建

    项目提供了一个简单的 Makefile,可以运行 make 来生成 llama3.jar:

    javac -g --enable-preview -source 21 --add-modules jdk.incubator.vector -d target/classes Llama3.java
    jar -cvfe llama3.jar com.llama4j.Llama3 LICENSE -C target/classes .

    生成的 jar 文件可以如下运行:

    java --enable-preview --add-modules jdk.incubator.vector -jar llama3.jar --help

    性能评估

    在不同的硬件配置下,Llama3.java 的性能表现如下:

    笔记本电脑 Intel 13900H

    模型tokens/s实现
    Llama-3-8B-Instruct-Q4_0.gguf7.53llama.cpp
    Llama-3-8B-Instruct-Q4_0.gguf6.95llama3.java
    Llama-3-8B-Instruct-Q8_0.gguf5.16llama.cpp
    Llama-3-8B-Instruct-Q8_0.gguf4.02llama3.java

    工作站 AMD 3950X

    模型tokens/s实现
    Llama-3-8B-Instruct-Q4_0.gguf9.26llama.cpp
    Llama-3-8B-Instruct-Q4_0.gguf8.03llama3.java
    Llama-3-8B-Instruct-Q8_0.gguf5.79llama.cpp
    Llama-3-8B-Instruct-Q8_0.gguf4.92llama3.java

    结论

    Llama3.java 在 Java 环境中实现了高效的 Llama 3 模型推理,其单文件实现和简单的命令行界面使其具有很高的实用性。虽然在某些性能指标上与 llama.cpp 存在差距,但其在 Java 生态系统中的表现依然值得肯定。

    参考文献

  • 谷歌投资20亿美元在马来西亚建设数据中心及云区域

    根据马来西亚政府的宣布,美国科技巨头谷歌计划在马来西亚投资20亿美元,建设谷歌在该国的首个数据中心和谷歌云区域,同时推进人工智能领域的发展。这一投资使谷歌成为东南亚地区最新一家注入资金以寻求增长机会的科技巨头[1]

    以下是有关这一投资的详细信息:

    1. 投资规模:谷歌将投资20亿美元(约合27亿新元)在马来西亚建设数据中心和云区域[1]
    2. 地点:数据中心和云区域将建在马来西亚雪兰莪州沙亚南的艾美娜商业园[1]
    3. 经济影响:这项投资预计将为马来西亚医疗保健、教育和金融领域提供2万6500个工作机会,并为制造业和服务业利用人工智能和其他先进技术提升全球价值链,创造约150亿4000万令吉(约43亿1600万新元)的经济总值[1]
    4. 谷歌的战略合作:这项投资是建立在谷歌与马来西亚政府合作推进“云优先政策”的基础上的,包括推动一流的网络安全标准[1]

    此外,谷歌的母公司Alphabet及谷歌的总裁兼首席投资官波拉特表示,这是谷歌在马来西亚运营13年来数额最大的投资计划,也是首次在该国设立数据中心和谷歌云区域[1]

    这项投资计划进一步证明了马来西亚政府的明确规划、国家的经济实力和资源,成功吸引了现有和新的投资者,有助于加速马来西亚的数码转型议程[1]


    Learn more:

    1. 谷歌投资20亿美元在马国建数据中心及云区域 | 联合早报
    2. 谷歌将在马来西亚投资 20 亿美元:建数据中心 / 进一步开发 AI,拟创造 2.65 万个就业岗位 – IT之家
    3. 团结政府拼经济奏效 谷歌投资大马94亿! – DAP
  • autoMate:用AI简化你的数字生活

    引言

    在这个数字化飞速发展的时代,我们的生活越来越依赖于各种软件和应用程序。但是,你有没有想过,如果这些软件能够更加智能,能够理解我们的指令并自动完成一些重复性的任务,那将会怎样?这就是autoMate所承诺的——它就像出行中的共享单车一样,只需3分钟,就能将AI的智能植入到任意一个软件中,让你的数字生活变得更加轻松和高效。

    autoMate是什么?

    autoMate是一个开源免费的项目,它允许用户通过简单的配置,将AI的能力集成到他们日常使用的软件中。无论是自动化工作流程,还是简化复杂的任务,autoMate都能提供强大的支持。

    如何开始使用autoMate?

    如果你是第一次使用autoMate,你只需要进行一些基础的设置。首先,你需要修改配置文件,添加OpenAI的信息。这可以通过在autoMate的左上角点击文件,然后选择components,接着配置OpenAI的相关信息来完成。

    autoMate的主要功能

    autoMate的核心功能是将AI集成到软件中,但它并不止步于此。以下是autoMate的一些主要功能:

    • 自动化任务:autoMate可以帮助你自动化那些重复性高且耗时的任务。
    • 智能决策:通过集成AI,autoMate能够提供智能的决策支持,帮助你更高效地完成工作。
    • 易于配置:即使是没有编程背景的用户,也能够通过简单的配置快速上手autoMate。

    各产品优势对比

    autoMate在众多自动化工具中脱颖而出,它的优势在于其开源免费的特性,以及对AI能力的集成。这使得autoMate不仅能够帮助个人用户提高效率,也能够为企业提供强大的自动化解决方案。

    开源社区的支持

    autoMate完全依赖于开源社区的支持,这意味着它不断地在改进和更新。社区的贡献者们不断地为autoMate添加新功能,修复bug,确保它能够满足用户的需求。

    结语

    autoMate是一个强大的工具,它能够让你的软件更加智能,让你的工作更加高效。无论你是希望简化日常任务,还是想要探索AI的潜力,autoMate都是一个值得尝试的选择。而且,由于它是开源免费的,你没有任何理由不试试这个能够改变你数字生活的神奇工具。

    呼吁行动

    如果你对autoMate感兴趣,不妨访问它的GitHub页面,那里有详细的安装指南和使用文档。同时,如果你觉得autoMate对你有帮助,不妨给它点个star,以示对开源项目的支持和鼓励。


  • 一群中国年轻人的留学之路:机会变窄了?

    中国年轻人面临的留学困境

    近年来,越来越多的中国年轻人希望出国留学,追求更广阔的学术和职业发展机会。然而,他们发现出国留学的路越来越窄了。无论是申请奖学金还是签证审查,都面临着越来越多的困难。

    根据《知识分子》援引的一些个人经历,中国学生在申请奖学金时往往发现,他们感兴趣的领域在美国是最发达、最前沿的,但由于种种原因,申请到这些实验室的机会变得非常有限。很多国家也开始提高留学生的审查门槛,一些大学和研究机构参与其中。

    除了奖学金申请的困难,学生还面临着签证审查的问题。有些学生被要求进行安全调查,有的甚至中途被退学。签证审查的时间也越来越长,有的甚至需要等待数年。一些学生在境外留学期间甚至遭遇了盘查和审问,他们的个人隐私和学术资料都受到了审查。

    影响学术发展和人生规划

    这些限制和审查对中国年轻学者的学术发展和人生规划产生了负面影响。一些学者发现,他们无法在自己感兴趣的领域进行研究,一些合作项目也因为政治原因受阻。年轻学者在面对地缘政治的变化时往往处于不利地位,他们可能未能完成必要的国际学术交流和社会资本积累。

    这种局面不仅对留学生产生了影响,也对学术界和科研领域造成了破坏。一些教授和学者因政策变化而受到限制,一些高校面临着来自政府和舆论的压力,导致学术交流受到新的审查。一些高校的部门甚至不得不考虑降低招收学生的标准。

    选择的困境和趋势

    中国年轻学生在面对这些困境时,不得不重新考虑自己的选择。越来越多的学生选择放弃美国,转向其他国家或选择在国内继续深造。一些学生认为,在国内的顶尖高校能够提供更好的学术机会和资源,而且能与家人更加接近。同时,一些国家如新加坡也成为留学的热门目的地。

    然而,这种趋势也引发了一些担忧。一些学者认为,这些限制和审查可能导致学术竞争的不公平,一些领域的学术发展受到了阻碍。年轻学者可能无法获得必要的国际学术交流和社会资本积累,影响了他们的学术发展。

    结论

    中国年轻人出国留学的机会正在变得越来越窄。越来越多的学生面临奖学金申请的困境,签证审查的挑战,以及学术发展受阻的问题。这对年轻学者的学术规划和人生选择带来了负面影响。

    然而,我们也不能忽视这种困境中的机遇。在选择留学的时候,学生们需要更加灵活和机智,寻找适合自己的机会和发展路径。虽然某些国家的机会变少了,但其他一些国家和地区仍然提供了良好的学术环境和机会。同时,在国内的顶尖高校也能够提供丰富的学术资源和发展机会。

    无论面对怎样的困境,年轻学者们应该保持积极的心态,并寻找适合自己发展的道路。学术领域的发展和人生规划需要时间和努力,即使面临困难,也要坚持追求自己的梦想。

    参考文献:

    1. 苏惟楚, 严胜男, 冀思宇. “一种生活]一群中国年轻人的亲身经历:出国留学的路,越来越窄了”. 喷嚏小乖, 2024, 5月9日.
    2. 张紫薇. “中国留学生出国交流遇阻,越来越窄的机会”. 知识分子, 2024.
  • 网约车司机的艰辛生存:月挣1.5万才能养家,连续5天睡车里

    在中国的繁华都市中,网约车行业正迅速发展,成为许多人的主要收入来源。然而,对于许多网约车司机来说,这个行业越来越难以维持生计,挣钱变得越来越艰难。他们不得不面对日益激烈的竞争和订单量的减少,为了维持家庭生计,他们必须制定各种策略来增加收入和降低成本。 image.png

    李师傅(化名)是一位在北京从事网约车司机工作的普通人,他的故事反映了许多网约车司机所面临的压力和艰辛。为了能够养家糊口,李师傅设定了每月至少需要挣到1.5万元的目标收入。然而,要实现这一目标并不容易。

    为了降低开支,李师傅严格控制自己的生活费用。他将每天的三餐控制在30元以内,日常开销不超过100元。对于一个有两个孩子的家庭来说,这样的开销限制非常严苛,但对于李师傅来说,这是为了能够顾及家庭和生计的必要措施。

    李师傅为了节约成本,创造了自己的接单策略。他通过多个网约车平台轮流接单,错峰出车,以减少空驶的时间。他还深入研究团购券,寻找最划算的午餐,甚至蹭过滴滴公司的食堂早餐。为了节约住宿费用,他曾连续五天睡在自己的车里,备有洗脸盆、毛巾、牙刷等生活用品。他不得不在艰苦的条件下过夜,以节省资金和时间。

    然而,即使在如此努力的情况下,李师傅发现网约车行业的订单量越来越少,竞争也越来越激烈。他表示,很多司机都在感叹挣钱变得越来越难,而且越来越多的人发现这个行业并不是轻松赚钱的方式。

    根据中国交通运输部的数据,截至2023年底,中国网约车司机数量已经达到657.2万,一年新增了148.2万名司机。这个庞大的数量使得竞争激烈,司机们不得不想尽办法来脱颖而出。

    李师傅认为,要在这个行业中谋生,不仅要有良好的驾驶技巧,还需要对规则有着深刻的理解,并善于利用规则来增加收入。他发现,掌握高峰期的订单,选择划算的团购餐券,以及灵活应对不同的接单平台都是提高收入的有效策略。

    然而,即使李师傅采取了这些策略,他也不得不面对订单量下降的现实。为了增加收入,他不得不加班到深夜,接送刚玩完的乘客。他在北京的繁华地段穿梭,从大厂门口到国贸、三里屯附近,不停地接单。他甚至愿意在凌晨时分睡在车里,以便在早上第一时间开始工作。

    然而,李师傅和很多网约车司机一样,他的努力并不总是能带来理想的结果。他发现,由于订单减少和竞争加剧,他的收入难以达到目标。为了应对这一困境,他不得不经常调整策略,尝试不同的接单方式和工作时间。

    网约车司机的艰辛生存状况引发了对整个行业的思考。随着网约车行业的迅速扩张,一些问题也浮出水面。一方面,乘客享受了便捷的出行服务,但另一方面,司机们面临着低收入、高竞争和不稳定的工作条件。

    政府和相关平台也意识到了这个问题,并采取了一些措施来改善司机的工作环境和收入状况。然而,要解决这个问题并不容易,需要各方共同努力,包括政府、平台和司机自身。

    对于李师傅和许多网约车司机来说,网约车行业是他们维持生计的重要途径,但同时也是一段充满挑战和艰辛的旅程。他们不得不面对日益激烈的竞争和不确定的收入,努力寻找生存和发展的机会。

    然而,他们的辛勤努力和奉献精神也值得我们的尊重和关注。他们为城市的出行提供了重要的服务,同时也承受着许多压力和牺牲。在社会的关注和支持下,希望网约车司机们能够找到更好的发展机会,实现自身的生活目标。

  • 昨日像那东流水——房地产行业的起伏与命运

    昨日像那东流水——房地产行业的起伏与命运

    初识老宋

    前几年,我在杭州偶遇了一些行业中的老朋友。那次聚会是在九溪的玫瑰园酒店,正值早春三月,孔雀在草地上悠闲地行走。人群中,我第一次见到了老宋。那是2010年,他意气风发,坐在行业的第二把交椅上,豪言要超越万科。然而,十几年一晃而过,行业跌宕起伏,万科陷入各种传言,他曾经的兄弟孙宏斌也如流星般陨落。

    老宋似乎已经远离了这些纷扰,每天中午他会晃悠到酒店的走廊上抽烟,专注于自己的事。他的头发已经花白,远离聚光灯多年。饭桌上,大家谈论过去的人和事,像王小波写过的那句话:“躺在河底,看着潺潺流水、波光、落叶、浮木、空酒瓶,一样样从身上流过去。”

    滨江的崛起与独特性

    杭州房企滨江近日被传将被杭州国企收购。就在前几天,滨江的老板戚金兴和夫人还在杭州淳安县的山上接待了业主们。戚老板说,山上空气清新,人也能保持清醒。过去两年,他和其他房地产从业者似乎不是一个时代的。

    滨江的独特性非常明显:60%的土地储备在杭州,85%的土储在浙江。2023年,滨江1076人管理了120个项目,卖了1534亿,人均销售额达到了1.43亿元。它的合伙伙伴也忠实、稳固,带着一帮小兄弟拿地,合作开发,有钱,有品质。滨江继承了绿城的营造质量和客户口碑,但在人均产出、成本控制和周转速度上,比绿城做得更好。

    戚金兴的战略与忧虑

    戚金兴一直是行业内敢公开表达的人。在绿城老宋半隐退的日子里,他扛起了浙江地产商的大旗,直截了当地批评同行业绩造假,并对市场进行预测。他松弛地讲着大实话,听起来像凡尔赛。2023年,滨江最低一笔项目贷款是2.2%,戚老板说:“有时候我都觉得难为情。”

    然而,他对后市非常不乐观,说房地产的丰产期已经过了:“我现在的战略是,其他城市再有诱惑力,也不去了,保住现在的成果。”

    杭州的地产热潮

    2015年后,杭州全是利好。阿里巴巴上市,杭州从工业经济向信息经济转型,人口每年飙涨十几万。2016年9月,杭州成功举办了G20,城市开始大规模的更新建设,拆迁了十几万户。新增人口需要住房,拆迁户也需要住房。2017年,杭州卖掉了17万套房子,很多人都是一次性付款。

    从2016年开始,杭州成为中国最热的土拍城市,房企争相来到这里竞技。2016年到2023年,杭州总土地收入超过1.8万亿,全国遥遥领先。滨江在杭州的土拍市场上一直断崖式领先,过去八年,总投资超过了2000亿。

    风险与挑战

    然而,2022年开始,杭州外围市场明显冷清。滨江去的临平、萧山临浦、临安、富阳甚至良渚、龙坞都成了高库存重灾区。2023年,滨江以自己的名义拿了15宗地,近10个项目综合新开盘去化率都低于50%。

    这些年,同行对标学习滨江也取得了一些成果。绿城和建发已经学到了滨江的精髓,拿完地后迅速推进项目。

    结语

    今年前四月,滨江以355亿,排名中国房企销售额第八。戚老板竟然成了中国民营房企第一名,财务状况和资产状况比其他人好得多。然而,滨江仍然传出将被国企收购的流言,这意味着在资本市场和业内看来,在当下已没有绝对安全的地产商了。标普上周选取了18家房企作为样本,进行压力测试,发现各类所有制样本房企均偿债能力不足,包括国企。

    走到一个时代的末尾,不堪其重的人,都像一片羽毛,轻轻飞出窗外。几个月前,我一个企业家朋友偶遇了旭辉老板林中,林中告诉朋友,他和弟弟都抑郁了,弟弟更严重一些,所以辞任了。满头白发的胡葆森也曾对林中说:“我马上70岁了,还不一样。”

    参考文献

    1. 喷嚏小乖. (2024). 一种生活:兽爷丨昨日像那东流水. [在线文章] 发布于 2024-5-7 22:11:00.
  • 从底层程序员到失意的IT培训学员

    前言

    一直以来,程序员这个职业在许多人眼中都是高富帅的代名词。通过IT培训学校,普通人也能迅速切入这个行业,成为软件开发的编程工人。但在现实中,这些底层程序员们往往只能沦为外包公司的代码搬运工,无法实现自我提升和价值实现。本文通过几个典型案例,探讨了普通人进入IT行业的艰辛历程,以及培训学校和外包公司对他们造成的种种困境。

    培训学校的”神话”与现实

    孙玲是众多IT培训学员心中的”神话”。她从一名深圳流水线厂妹,通过不懈努力,最终成长为纽约的高薪程序员。这种”逆袭”的人生轨迹,激发了许多普通人的梦想。

    但事实证明,孙玲只是少数幸运儿。对于大多数学员来说,在培训学校所学的知识往往只是皮毛,无法满足互联网公司日新月异的技术要求。培训学校为了招揽学生,不惜使用”应试教育”的手法,教授一些过时且简单的编程知识,仅仅是为了应付面试。

    随着行业变革,头部互联网公司对员工的技术要求越来越高,普通培训学校难以跟上步伐,反而被淘汰出局。许多原本报考的学生,最终只能进入人力外包公司,沦为代码搬运工,无法实现自我价值。

    外包公司:编码的”送外卖”

    进入外包公司后,许多底层程序员发现自己的处境并没有太大改变。他们不得不连续加班完成一个又一个项目,却无法掌控最终产品的走向。就像一位员工所说,”就像对着空气敲代码”。

    缺乏成就感和发展空间,使得许多员工对未来失去信心。有的人干脆选择辞职,去送外卖或做其他工作,因为那样”至少不用整天写些脏东西”。

    失意的IT培训学员

    无论是孙玲这样的成功典型,还是陷入困境的普通学员,他们的经历都给我们一个深刻启示:IT培训学校并非通往程序员”圣殿”的捷径,而是一条充满荆棘的道路。

    如果没有扎实的编程基础和持续学习的决心,普通学员很难在这个行业立足。外包公司的无奈处境,也让我们看到了IT培训学校的局限性。

    也许,对于大部分普通人来说,IT行业的”神话”终究只是一个遥不可及的梦想。我们需要更加务实地看待自己的处境,选择适合自己的人生道路,而不是盲目地追求那些虚幻的前景。

  • 《万历十五年》: 重写历史的艺术

    20世纪最后几十年间,中国大陆和台湾读者心目中最有影响力的历史学家,非黄仁宇莫属。他的代表作《万历十五年》,从一个平凡无奇的年份出发,绘制了明王朝兴衰的全景。这部充满激情和才华的作品,打破了学术界的定式,为读者呈现了一种全新的历史叙事方式。

    我们可以从以下几个方面来解析这部经典之作的成功之处:

    1. 把握时代脉搏,迎合读者需求。在改革开放初期,中国历史学界普遍呈现僵化、沉闷的局面。《万历十五年》的出现,让读者重新感受到历史的生动性和多元性,引发了广泛关注。
    2. 独特的叙事策略。黄仁宇选择了一个平淡无奇的年份,通过六个人物的失败故事,生动地展现了明王朝的内在矛盾和必然消亡。人物性格鲜明,情节引人入胜,这种”以人物为中心”的叙述方式深受读者欢迎。
    3. 清晰的历史观。黄仁宇提出,中国之所以落后于西方,关键在于传统政治体制的弊端 —— 组织简单、效率低下,而缺乏应对现实问题的能力。这种”大历史观”为读者提供了一个简单明了的通史框架。
    4. 作者独特的个人经历。”半路出家”的黄仁宇,既没有被学术圈的”规矩”所驯化,又保持着对历史的草根式兴趣。他的作品都源于自身的生命体验,富有强烈的个性特色,这正是它广受读者欢迎的重要原因。

    然而,黄仁宇的成功并未获得学界的一致认可。他的”大历史观”和散文化的写作风格,被一些正统学者视为”粗糙”、”不严谨”。他们认为黄仁宇缺乏扎实的学术功底,其作品”史学价值甚微”。

    这种对立反映了当代史学研究日益专业化、封闭化的弊端。学界过度强调考证、分析,忽视了历史研究的”致用”价值。而像黄仁宇这样的”半路出家”,却往往能更好地把握时代脉搏,以通俗易懂的方式,满足普通读者对历史知识的需求。

    “黄仁宇现象”无疑为历史学界敲响了警钟。我们应该反思,史学研究究竟应该为谁服务?是应该自我封闭,沉浸于学术殿堂,还是应该主动走向社会,实现知识的普及和传播?相信通过这些反思,历史学必将迈向一个更加开放、活跃的新纪元。


    《黄仁宇与”大历史观”》

    我们从前辈历史学者黄仁宇的传奇人生经历和著作《万历十五年》的创作历程中,可以看出一个重要的启示:历史研究应该跳出狭隘的学术殿堂,真正服务于广大读者。

    黄仁宇先生生平大起大落,从十四岁就开始在报刊发文,十八岁就读南开理工,后来又投身抗战,负伤入美深造,最终成为历史学者。他的人生经历丰富多彩,一度在学术界遭受冷遇和解聘,但凭借自己独特的”大历史观”,最终在普通读者中大获成功。

    黄先生的代表作《万历十五年》,在首次投稿时遭到美国众多出版社的退稿,原因是这部作品在学术界看来”不伦不类”,既不像传统的历史专著,也不像学术论文。但就是这种混合了散文、小说和学术论述的独特写法,反而深受普通读者的喜爱。这部被视为”历史界的琼瑶”的作品,在大陆和台湾迅速成为畅销书,直至今日依然影响力巨大。

    造成这一现象的关键在于,黄仁宇保持了强烈的个性和独特视角,他的历史研究不仅是为了解决学术问题,更多地源自于对个人生命困惑的思考。他的”大历史观”虽然遭到学界主流的批评,但却很好地契合了普通读者迫切了解中国历史全貌的需求。他巧妙地将复杂的历史事件转化为一个个生动动人的故事,引发读者的强烈共鸣。

    与此同时,学界对黄仁宇的抵触也反映出了当代史学研究的一些问题。在学术日益专业化的今天,不少历史学者过于注重考据和分析技巧,忽视了学术研究的”致用”价值,史学也越来越远离广大读者。这种状况下,黄仁宇这样的”半路出家”反而能够保持敏锐的问题意识和广阔的视野,为普通读者提供新鲜而动人的历史叙述。

    可以说,”黄仁宇现象”给予我们的启示是:历史研究应该跳出狭小的学术场域,真正服务于社会,回应普通大众的需求。我们需要更多像黄仁宇一样,能够将深厚的学识转化为通俗易懂的著作,让历史学真正发挥其独特魅力,引发社会各界的广泛关注和热烈讨论。只有这样,历史研究才能真正担当起应尽的社会责任。