{"action":"created","issue":{"url":"https://api.github.com/repos/SquidPony/SquidLib/issues/61","labels_url":"https://api.github.com/repos/SquidPony/SquidLib/issues/61/labels{/name}","comments_url":"https://api.github.com/repos/SquidPony/SquidLib/issues/61/comments","events_url":"https://api.github.com/repos/SquidPony/SquidLib/issues/61/events","html_url":"https://github.com/SquidPony/SquidLib/issues/61","id":66050254,"number":61,"title":"Brevity is the soul of wit.","user":{"login":"tommyettinger","id":160684,"avatar_url":"https://avatars.githubusercontent.com/u/160684?v=3","gravatar_id":"","url":"https://api.github.com/users/tommyettinger","html_url":"https://github.com/tommyettinger","followers_url":"https://api.github.com/users/tommyettinger/followers","following_url":"https://api.github.com/users/tommyettinger/following{/other_user}","gists_url":"https://api.github.com/users/tommyettinger/gists{/gist_id}","starred_url":"https://api.github.com/users/tommyettinger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tommyettinger/subscriptions","organizations_url":"https://api.github.com/users/tommyettinger/orgs","repos_url":"https://api.github.com/users/tommyettinger/repos","events_url":"https://api.github.com/users/tommyettinger/events{/privacy}","received_events_url":"https://api.github.com/users/tommyettinger/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/SquidPony/SquidLib/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":{"login":"SquidPony","id":1217477,"avatar_url":"https://avatars.githubusercontent.com/u/1217477?v=3","gravatar_id":"","url":"https://api.github.com/users/SquidPony","html_url":"https://github.com/SquidPony","followers_url":"https://api.github.com/users/SquidPony/followers","following_url":"https://api.github.com/users/SquidPony/following{/other_user}","gists_url":"https://api.github.com/users/SquidPony/gists{/gist_id}","starred_url":"https://api.github.com/users/SquidPony/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SquidPony/subscriptions","organizations_url":"https://api.github.com/users/SquidPony/orgs","repos_url":"https://api.github.com/users/SquidPony/repos","events_url":"https://api.github.com/users/SquidPony/events{/privacy}","received_events_url":"https://api.github.com/users/SquidPony/received_events","type":"User","site_admin":false},"milestone":null,"comments":3,"created_at":"2015-04-03T01:48:15Z","updated_at":"2015-04-03T05:43:14Z","closed_at":null,"body":"I'm really struggling with the direction SquidLib started heading towards around the time of the 2.0 release. I'd be OK with writing slightly more code if the functionality was the same, or only added to... But some things that are actually important to me got removed, and like Steve Ballmer spitting in the face of an amputee, in SquidLib 2.2 I have to go through a layer of enterprise nastiness to do less with more work. Here's what I mean.\r\n\r\nIn SquidLib 1.95.1, I can ensure that my font will hint correctly (it only hints at sizes that are multiples of 16) and that a glyph will fit exactly in a 12x24 pixel box.\r\n```java\r\nFont font = Font.createFont(Font.TRUETYPE_FONT, new File(\"my-font.ttf\")).deriveFont(32.0);\r\nSwingPane sp = new SwingPane(12, 24, 60, 60, font);\r\n```\r\n\r\nIn SquidLib 2.2, I might be able to make this work with fitting and padding, but I still don't know if the font will be resized by TextCellFactory.\r\n```java\r\nFont font = Font.createFont(Font.TRUETYPE_FONT, new File(\"my-font.ttf\")).deriveFont(32.0);\r\nTextCellFactoryBuilder uss = new TextCellFactoryBuilder().font(font).width(12).height(24);\r\nTextCellFactory enterprise = new TextCellFactory(uss);\r\nSquidPanel sp = new SquidPanel(60, 60, enterprise, null);\r\n```\r\n\r\nIs TextCellFactoryBuilder even needed?  It provides almost a carbon copy of the structure of TextCellFactory, and all of the methods it has would be perfectly suited to just being setters in TextCellFactory.  It's an excellent example of why I am so deeply opposed to this sort of enterprise code; it violates the DRY principle, it's more verbose than is warranted by the problem, and it hides capabilities that should be accessible (and were in earlier versions).\r\n\r\nI'm porting some C# code that uses [BearLibTerminal](http://foo.wyrd.name/en:bearlibterminal) to Clojure, and I was hoping to use SquidLib's most recent features, but now I'm using 1.95.1. BearLibTerminal has 27 functions and some constants declared in one namepace, and that's it. It doesn't do anything other than display, but it handles images, multiple fonts, adjustments to position within a cell (bump or slide effects use this), and supports both bitmap and truetype fonts. I strongly prefer its style of API to any API that involves multiple closely-linked classes, where I need to go between 3 different doc pages to see what I need to do to use one of them. Does this make sense?"},"comment":{"url":"https://api.github.com/repos/SquidPony/SquidLib/issues/comments/89171691","html_url":"https://github.com/SquidPony/SquidLib/issues/61#issuecomment-89171691","issue_url":"https://api.github.com/repos/SquidPony/SquidLib/issues/61","id":89171691,"user":{"login":"SquidPony","id":1217477,"avatar_url":"https://avatars.githubusercontent.com/u/1217477?v=3","gravatar_id":"","url":"https://api.github.com/users/SquidPony","html_url":"https://github.com/SquidPony","followers_url":"https://api.github.com/users/SquidPony/followers","following_url":"https://api.github.com/users/SquidPony/following{/other_user}","gists_url":"https://api.github.com/users/SquidPony/gists{/gist_id}","starred_url":"https://api.github.com/users/SquidPony/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SquidPony/subscriptions","organizations_url":"https://api.github.com/users/SquidPony/orgs","repos_url":"https://api.github.com/users/SquidPony/repos","events_url":"https://api.github.com/users/SquidPony/events{/privacy}","received_events_url":"https://api.github.com/users/SquidPony/received_events","type":"User","site_admin":false},"created_at":"2015-04-03T05:43:14Z","updated_at":"2015-04-03T05:43:14Z","body":"Okay, Phase 1 cleanup already, removed TextCellFactoryBuilder, pushing its functionality into TextCellFactory and streamlining a bit with SquidPanel's constructors.\r\n\r\nI'll close this once I make some issues for the other things brought up."}}