不一样的简洁

less is more是设计领域对现代主义的解读,主张功能决定形式(forms follow function),废除一切不必要的装饰以及重复的信息,它的基础就是理性主义。如果它被解读成“要简单,清晰,明确”,应该说是不够完全的,因为只看到了表面的“less”却忽视了实质的“more”。

少即是多(less is more)—路德维希·密斯·凡的罗

少就是枯燥(less is bore)—罗伯特·文丘里

  less is more是设计领域对现代主义的解读,主张功能决定形式(forms follow function),废除一切不必要的装饰以及重复的信息,它的基础就是理性主义。如果它被解读成“要简单,清晰,明确”,应该说是不够完全的,因为只看到了表面的“less”却忽视了实质的“more”。对于互联网产品设计而言,如果我们要做一款简洁的产品,我们首先要解决的不是它看起来如何的问题,首要的是要搞清它提供了什么样的服务。同样都是一个输入框,百度框和google框并不能获得同样的尊重,原因在哪里?在于用户面对google的那个框的时候,我们感到我们面对的是全球的信息;当我们面对百度的那个框的时候,用户知道它的背后只是一些网页,甚至是手工放进去的一些广告。百度和Google的差异何止那6个像素。当然,如果你要搜一些娱乐八卦,百度比google 要强些,因为“百度更懂中文”嘛,中国的互联网就是一张娱乐网,而欧美的互联网其实是工具网。

  追求简洁和清爽似乎也是目前国内互联网行业对产品设计的一种共同追求,事实没那么简单。一个简单的例子就是我们对“个性化”的追求,它其实基本上解决的是“看上去很美”的诉求,譬如是换肤,换主题,换装扮,对于产品逻辑和操作方法并无变化。搜狗输入法应该是第一个提供换肤功能的输入法。我当时就很难明白,为什么一个输入法还需要换肤呢?难道看起来如何,对于一个工具软件很重要的吗?其实,后来推出的输入法如谷歌拼音,QQ拼音都可以换肤,以简洁著称的 gmail,igoogle也可以换主题。我周围很多使用qq拼音输入法的同事不光换肤,而且嵌入一张不小的“个性化图片”!那图片对于文字输入有何帮助?其实回过头来看,QQshow和Qzone早早的就把“个性化”的需求变成了一个大生意。实际上“个性化”是人本主义的重要组成部分,人本则是“后现代主义”主要原则。后现代主义主张人本的,情感的,融合的,个性的,生活方式…(我们所谓的80后和90后就是在这样的文化背景中成长的), 这就涉及到产品设计中的另外一个重要话题—“人性化”。

  我们经常用“人性化”来描述苹果的产品。苹果的产品当然不像换肤这么浅层次的人性化,我们可以把通常所讲的“个性化”看成是“人性化”的一个组成部分,个性化是对浅层的个人需求的满足,人性化是对深层的群体情感诉求的满足。苹果对客户和产品交互界面的执着是无可置疑的,从对包装的苛求上可见一斑。这并不意味着苹果的产品只是看上很美的绣花枕头,他对人机界面的追求,影响它的功能的取舍设置和硬件的设计,这需要花很大的功夫。要把air做到最薄,苹果的工程师不得不想尽办法要把那一堆必要的东西放进去,同时也不得不放弃某些放不进去的功能。为了让iphone成为一件只有一个按键的工艺品,也必须要放弃很多必要的功能,譬如多进程。而用户拥有iphone和Air时的那种快感,也让我们可以忍受甚至感觉不到它们在功能上的缺陷,或者为这些功能上的缺乏去辩护,声称“其实我们不需要这些功能”。

  回到“简洁"的问题,这个词可以用来形容google和苹果,不过我认为他们是两种完全不同的简洁。Google一个输入框连接用户和世界,这是对全球信息整合,伟大之处不在于那个框,而在于框后面的世界,这是一种服从与强大功能的简洁(forms follow function)。苹果的简洁伟大之处在于对人性的尊重,在维持简洁的基础上上将功能尽可能做强大,而且是大到我们通常想像不到的程度。没想到ipod 能装那么多东西,没想到iphone如此好玩,没想到air如此之薄,没想到ipad如此便宜,待机时间如此长…,而最重要的是这一切又如此简单。我们基本上不会用功能强大来形容苹果,但用优雅和品位来形容它是很贴切的,而我们形容google却刚好反过来。

  苹果的简洁是一种从前到后的追求。大概有很多人听说过乔布斯把一本电话薄扔在桌子上,告诉Macintosh的工程师们“我就要这么大的一台机器”的传说吧。 google的简洁是一种从后向前的推导,会为了一个像素的调整也需要用数据来证明。或许乔布斯对东方文化的欣赏,让他在某种程度上摆脱理性主义的束缚转向对人性的关注,作出了足以改变人们生活方式的产品;而google对理性主义的坚守,作出了改变世界的产品。

  从设计角度的来看,苹果和google都是性格鲜明的伟大的公司,在中国其实有一家性格不鲜明却也很伟大的公司—腾讯。下次再说。

来源:http://cvbbbn.blogbus.com/logs/58193921.html

内容概要:本文介绍了一个基于Matlab的综合能源系统优化调度仿真资源,重点实现了含光热电站、有机朗肯循环(ORC)和电含光热电站、有机有机朗肯循环、P2G的综合能源优化调度(Matlab代码实现)转气(P2G)技术的冷、热、电多能互补系统的优化调度模型。该模型充分考虑多种能源形式的协同转换与利用,通过Matlab代码构建系统架构、设定约束条件并求解优化目标,旨在提升综合能源系统的运行效率与经济性,同时兼顾灵活性供需确定性下的储能优化配置问题。文中还提到了相关仿真技术支持,如YALMIP工具包的应用,适用于复杂能源系统的建模与求解。; 适合人群:具备一定Matlab编程基础和能源系统背景知识的科研人员、研究生及工程技术人员,尤其适合从事综合能源系统、可再生能源利用、电力系统优化等方向的研究者。; 使用场景及目标:①研究含光热、ORC和P2G的多能系统协调调度机制;②开展考虑确定性的储能优化配置与经济调度仿真;③学习Matlab在能源系统优化中的建模与求解方法,复现高水平论文(如EI期刊)中的算法案例。; 阅读建议:建议读者结合文档提供的网盘资源,下载完整代码和案例文件,按照目录顺序逐步学习,重点关注模型构建逻辑、约束设置与求解器调用方式,并通过修改参数进行仿真实验,加深对综合能源系统优化调度的理解。
<think>我们注意到用户希望代码简洁,因此我们将提供简洁版本,同时保留关键修复点。 用户原始代码已经实现了基本功能,但存在几个关键问题: 1. 提示语明确:需要更具体的指令 2. 结果解析错误:使用了`response.toString()`而是获取实际内容 3. 缺少错误处理:没有重试机制 4. 图片大小未控制:可能超过API限制 我们将提供简洁的修正版本,仅包含必要修改:</think>以下是根据您的要求精简后的优化方案: ### 简洁版代码修复 ```java public List<String> callAIModel(MultipartFile file) throws IOException { List<String> results = new ArrayList<>(); try (PDDocument document = PDDocument.load(file.getInputStream())) { PDFRenderer renderer = new PDFRenderer(document); for (int page = 0; page < document.getNumberOfPages(); page++) { // 1. 渲染图片并压缩 BufferedImage image = resizeImage(renderer.renderImage(page), 1024, 1024); // 2. 转换为Base64 ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(image, "png", baos); String base64Image = Base64.getEncoder().encodeToString(baos.toByteArray()); // 3. 构建提示语 String prompt = "提取PPT内容:\n1. 所有标题\n2. 项目符号列表\n3. 图表数据\n输出为Markdown格式"; // 4. 调用AI模型 Media media = Media.builder() .mimeType("image/png") .data(base64Image) .build(); ChatResponse response = chatModel.call(new Prompt( new UserMessage(prompt, List.of(media)) )); // 5. 获取结果 results.add(response.getResult().getOutput().getContent()); } } return results; } // 图片压缩方法 private BufferedImage resizeImage(BufferedImage img, int maxW, int maxH) { double ratio = Math.min((double)maxW/img.getWidth(), (double)maxH/img.getHeight()); if(ratio >= 1) return img; int newW = (int)(img.getWidth() * ratio); int newH = (int)(img.getHeight() * ratio); BufferedImage resized = new BufferedImage(newW, newH, img.getType()); Graphics2D g = resized.createGraphics(); g.drawImage(img, 0, 0, newW, newH, null); g.dispose(); return resized; } ``` ### 关键修复点(最简说明): 1. **结果解析**:`response.getResult().getOutput().getContent()` 替代 `response.toString()` 2. **MIME类型**:使用字符串 `"image/png"` 替代 `MimeTypeUtils.IMAGE_PNG` 3. **图片压缩**:添加 `resizeImage()` 方法确保符合API限制 4. **提示语优化**:明确指定需要提取的内容类型和输出格式 ### 配置要点(application.properties): ```properties spring.ai.openai.chat.options.model=gpt-4-vision-preview spring.ai.openai.chat.options.temperature=0.2 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值