HNHacker News
TopNewBestAskShowJobs

thecombjelly

1,120 karma · joined November 22, 2009

Thomas Hintz - http://thintz.com

t@thintz.com

submissionscomments
thecombjelly··on Chicken Scheme
I would highly recommend chicken scheme for most projects. It isn't as mature as other ecosystems, but it is getting there fast and is already quite mature and practical. I've used it to build multiple web apps/sites.[0][1]

Learn more about the features it provides: http://wiki.call-cc.org/man/4/Getting%20started

An index of the many libs it supports: http://wiki.call-cc.org/chicken-projects/egg-index-4.html

Why another lisp? http://wiki.call-cc.org/man/4/faq#why-yet-another-scheme-imp...

Getting good performance: https://news.ycombinator.com/item?id=5381472

[0] http://thintz.com?hn=t [1] https://a.keeptherecords.com/demo

thecombjelly··on Chicken Scheme
I've evaluated other schemes as well and built my personal site and a few web apps in chicken scheme.

Why do I love it? It can be fast, very fast. You can embed C code if it isn't fast enough.

It is very practical, there are many libs. It compiles to C which makes it pretty easy to add support for many popular libs that are written in C/C++.

A lot of schemes sacrifice speed and practicality for academic reasons, chicken scheme doesn't do this.

The community is fantastic. Everyone is reasonable and kind and helpful.

thecombjelly··on Chicken Scheme
I have built numerous businesses and websites with chicken scheme. It rocks.

The largest one is a basic CRM for a small niche. It runs super fast and development was a breeze. I run it compiled with a number of optimizations enabled.[0]

My personal website is also built in chicken scheme and runs fast even though it is running in interpreted mode.[1]

[0] https://a.keeptherecords.com/demo, source code: https://github.com/ThomasHintz/keep-the-records

[1] http://thintz.com?hn=t

thecombjelly··on Not Lisp again (2009)
> First of all, a disclaimer: standard R5RS Scheme can not be executed efficiently. Period. Every implementation must bend the semantics of the language in more or less subtle ways to do a minimum of optimization and there are several approaches to do this[0]

In my experience, lisp developers care a ton about performance. Most common lisp and schemes provide numerous ways to get good performance. With lisp you get power, flexibility, and performance. It gets even better when you use something like chicken scheme, which is compiled to C and allows you to embed C code.

I run multiple web servers written in chicken scheme and they perform very fast, much faster than nearly any comparable web framework, like rails.

[0] From a chicken scheme guide on programming for performance: http://wiki.call-cc.org/programming-for-performance

thecombjelly··on How to speed up your design process
> Style tiles help establish a common visual language before getting started on the mockups. “Can we see what this would look like in purple” will no longer be such a painful question. Style tiles consist of fonts, colors, patterns and other interface elements. Now, when your team needs to add a new screen with various elements, it will be easy to borrow the asset from the style tile that you previously agree upon.

This sounds a lot like using bootstrap, except you have your own custom version. This would help improve the consistency of the design and make it vastly easier to iterate.

Styletiles, bootstrap and other basic web widgeting toolkits will transform the way web apps are built, saving tons of time and producing better results.

thecombjelly··on Google Docs makes it easy to do market research
I wonder how well the terms correlate with regards to search traffic. I often build up a list of search terms in the google adwords tool and see the traffic estimates for them and related keywords for evaluating niche markets.
thecombjelly··on Why are payment forms so complicated?
What works for one company may not be acceptable or optimal to other companies. I think the biggest insight is that you should measure these things and see what approach earns you the most money, taking chargebacks into account.
thecombjelly··on Why are payment forms so complicated?
> why not just append the security code

It may be an extra layer of protection related to getting the credit card number via seeing or taking a picture of the front of the card, having it on the back helps improve security from that aspect.

thecombjelly··on Building A Paid App For Firefox OS
I think the open web-applied to smartphones-will be what the entire smartphone market eventually arrives at. Mozilla is playing the long game and doing a lot of extra work and will go through a lot of issues that they wouldn't if they made another walled garden OS and marketplace. One of the reasons that the web is so popular for developing apps is its openness and prevalence. The more momentum firefox OS builds, the more pressure will be put on other phone OS ecosystems to follow suit, especially if you can use firefox within other ecosystems and it integrates well with their marketplace and apis. When that happens, it will be increasingly hard to justify creating a device specific app when you can cover every device with one webapp.

This will be an exciting project to watch.

thecombjelly··on How Lisp is Going to Save the World
That is true to a degree but you really can not generalize very well at all in java. You will also be hard pressed to find java code written functionally enough that you can just run a unit test and know it is working correctly. Usually you have to instantiate many other classes and stub in test data via something like guice. There are many places for those bugs to hide in that type of setup.
thecombjelly··on How Lisp is Going to Save the World
I love lisp. I use/used it to build my web service product[1] and anything else I can.

=how do I do X?=

java: something similar to X is already done in Y. add abstract class and redo X and write Y. +200 LOC

lisp: something similar to X is already done in Y. realize you can generalize X and Y into a new pattern and use it for ABC too. -70 LOC

=there is a bug in function X=

java: open X.java. edit line. restart program. X seems to be working correctly.

lisp: two hours later, ah ha! I understand this code. fix X. write unit test. eval unit test. X works correctly.

[1] demo: https://a.keeptherecords.com/demo, source: https://github.com/ThomasHintz/keep-the-records

thecombjelly··on Be happy Bike to work.
Whether you wear headphones or not is a matter of how much risk you want to take. Just like riding a motorcycle is more risk than driving a car. Wearing headphones is more risky, but like anything in life, you have to decide if the benefits outweigh the downsides.
thecombjelly··on DuckDuckGo is blowing up
I don't really understand why so many people think that the results on DDG are worse than Google. Maybe I just don't search for things that other people do, or I search differently, but for me, I usually prefer the DDG results. Most of it has to do with the zero click info and the disambiguation. Especially the disambiguation. I get better results because most things I search for could be disambiguated, and I take full advantage of that to quickly give me just the results related to what I'm looking for.
thecombjelly··on DuckDuckGo is blowing up
I've certainly noticed a difference in speed. I've been using DDG solid for around a couple years now and the only thing I ever really lament is the speed, so I'm very glad you guys are working on it. And it is definitely getting better. And, as always, I can't live without the disambiguation feature, it saves me so much time.
thecombjelly··on The 50 Best Websites of 2011
Great work DDG and yegg! I love DDG and have been using it for well over a year. The quality is just so good that anytime I get on computer set to search Google by default, I only get through a few searches before I'm compelled to head over to DDG.
thecombjelly··on The 50 Best Websites of 2011
The best reason for me is the quality. Between the disambiguation feature and the lack of spam and crappy sites, DDG is really good at finding what you want it to.
thecombjelly··on Java 7 is now available
For version 8, I think it is a stretch to say that it will support 'closures'. [0]

The closures that are proposed are more like a bolted on psuedo solution, basically syntactic sugar that makes the language more complex. You can only use them in SAM (Single Abstract Method) situations. If only they just added a simple lisp like lambda expression...

[0] http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-3...

thecombjelly··on Tesla Motors inks $100M deal with Toyota
I hail from Michigan and I still know quite a few automotive engineers. Mostly at small suppliers though.
thecombjelly··on Rapid DHCP: Or, how do Macs get on the network so fast?
I have a EeePC 900A and the driver for wireless is by far the best I've experienced on Linux.
thecombjelly··on Rapid DHCP: Or, how do Macs get on the network so fast?
Interesting. I have Arch Linux running on a Asus Eee pc and I was always happy that it was connected and ready to go as soon as I woke it up from sleep (including WiFi). I can access the internet within a second of waking it up. I'm using NetworkManager and I wonder if it isn't doing something similar? But then everyone else on Linux is claiming it takes much longer.
thecombjelly··on The new Pandora: Slick new HTML5 design
Grooveshark is already available with HTML. They use flash behind the scenes to play back the audio, but that's it. Pandora will most likely be very similar.
thecombjelly··on Arch Linux Packages Visualization
The AUR can definitely be tricky, but in my experience it is usually better than configuring and compiling packages without it. Usually you can figure out what is going wrong just by googling the error or looking at the PKGBUILD. In fact, the AUR, is one of the main reasons I prefer Arch.

edit: As noted by another comment, yaourt is the way to go.

thecombjelly··on Ask HN: How do you begin to build your new project?
I think it actually depends on the language that you use. When I used languages based off C, that didn't lend as well to rapid prototyping, that didn't have a good repl; I would do a lot of design work on paper. I usually ended up over engineering things with this approach though.

Now that I think and write in Lisp, I find it is a much better approach to draw up one or two UI frames and then code up the UI with hard coded data. Then I just slowly build the hard coded data out and the actual app in. I don't actual engineer much at all. I just let it flow out. This leads to a much more efficient design process in terms of the time to quality ratio.

It also seems to me that every time I try to program bottom up on paper, I do a terrible job at it. It works much better when I have actual code.

thecombjelly··on Ask HN: Any web startups using Java?
It is not performance or hosting concerns. Java performs good enough and you can host it on things like EC2.

The problem is that web startups tend to want to develop things quickly and be able to pivot quickly and easily. Java is not best at those things.

I know Java and worked with it for years. I do all of my startup coding in Lisp. Java forces you to do a lot of things that may make your code more reliable and easier for others to use, but it comes at the cost of being less productive, and in startups, being able to develop quickly is extremely important. That is why languages like Lisp or Ruby or Python are much more popular in the startup world.

thecombjelly··on CL or Scheme?
I really value long term quality of my code and I highly value simplicity and pretty looking code. In these regards Scheme is a much better choice.

There may be some libs that are in CL but not Scheme, but I actually have found nearly everything in Scheme that is in CL. Although some common real world problems are better addressed in CL related documentation.

...And you really only need emacs (or Vim, etc) and CL, Scheme, whatever installed. Setting up SLIME and all that isn't necessary to get started.

thecombjelly··on Wi-Fi Makes Trees Sick, Study Says
The study exposed 20 ash trees to various radiation sources for a period of three months

Sure seems like the evidence is a long ways from being able to make statements like:

Radiation from Wi-Fi networks is harmful to trees and All deciduous trees in the Western world are affected

thecombjelly··on Utterly sensible HTML templating in Common Lisp
I use Chicken Scheme with the Awful web framework. I also use the the Chicken Eggs: html-tags (sexp based HTML generation) and html-utils, along with many other supporting modules.
thecombjelly··on Be careful what you ask for. How 2 words dropped CTR 36%
But many times, making something look better gives people a better understanding and more confidence, therefore you get more money.
thecombjelly··on Be careful what you ask for. How 2 words dropped CTR 36%
> Instead of doing proper A/B testing

I disagree. It is not easy, if not impossible, to go from ugly to beautiful, with A/B tests. A/B tests can make judgments on things, but they aren't going to make it much more beautiful. Making it more beautiful, and doing A/B tests, seems like the best approach.

thecombjelly··on Utterly sensible HTML templating in Common Lisp
How have you lost? I write my HTML in a very similar way to the linked article, and I don't think I lose at all. In fact, I much prefer it.

It is more consistent. All of my code is now (in my case) Scheme. This makes it easier to change things as you don't have to go between two different languages. And it is simpler.

My favorite reason is the fact that I can use S-Exps. I no longer have to type the ending tag. I remove the possibility for spelling it wrong, or forgetting the slash. And it takes less space and is easier to get the placement correct, as you just utilize paren matching.

← PreviousPage 3 of 5Next →