HNHacker News
TopNewBestAskShowJobs

actf

193 karma · joined April 9, 2009

submissionscomments
actf··on Why I Went From Python To Go (and not Node.js) (2012)
I don't mean to be pedantic, but I disagree that the Go ecosystem has a good choice for pretty much any functionality.

I think one major omission from the current Go ecosystem is a decent GUI library. There have been some attempts however, to my knowledge, they are mostly alpha/beta quality at best, and most of them are missing important functionality (the major ones I'm aware of are go-gtk, go-ui, go-fltk, wxGo, and none of them could be considered production ready IMHO).

I only point this out because I really like Go, and I think Go would actually be a very interesting language to do client side desktop application development in.

actf··on Quick tip for developers who use OS X
I love how osx supports emacs key-bindings by default for any text field.

I miss this feature a lot when I switch back to windows. I find myself pressing ctrl-n in my browser's address bar, expecting to view my URL history, and instead I get a new windows.

If anyone knows of a way to get similar functionality in windows, I would love to hear about it!

actf··on Sublime Text 3 Build 3059
Sublime is missing support for vim actions when used in combination with / or ?

For example:

   d/abc (i.e. delete forward until the text 'abc')
or

   c/abc (i.e. change the text going forward until the text 'abc')
I can workaround most of the missing functionality, but this one is a deal breaker for me. Unfortunately since / just uses the built-in Find feature in Sublime, fixing this is probably non-trivial.
actf··on QML support for Golang
Thanks, I haven't seen that yet. It does look promising. I was vaguely aware that work was happening on these features, but I wasn't aware of their current state.

Unfortunately it doesn't look like these are available yet in Python, as Python doesn't seem to have bindings for QtQuick 2.1, at least based on my googling. Hopefully that will come soon though!

actf··on QML support for Golang
Very cool, QML is a very promising GUI development language. I'm a huge fan of declarative UIs, and QML is great for this. For those that have experience in WPF, QML is actually very similar.

My main complaint about QML is that it really needs to ship with some desktop widgets. Without common desktop widgets, developers are forced to basically reinvent the wheel, and redefining common controls using primitives like rectangles, text, etc. Once this problem is solved though I really hope QML will take off in a big way.

actf··on Frameworks Round 3
These are really great - one additional test I would love to see would be Mono Asp.net MVC. I think it would interesting to see how it compares to the JVM.
actf··on Just Use Sublime Text
> I thought one can write in Python and other languages for plugins now?

Yes and no. Technically this is possible, but it's almost as unpleasant as just using vimscript.

Scripting vim in python involves using the vim module, which provides a very limited api to interact with vim. It doesn't allow the interception of any events, and interacting with vim more often than not seems to involve calling vim.command() or vim.eval(), which take vimscript as a string.

That said, I still think this is the direction vim needs to go. I think if the vim python integration improves in future releases it will be much appreciated, and will provide a boost to the vim plugin community.

actf··on Everything about Java 8
I really disagree that C# getters and setters are less readable than a public field. Compare:

   public string Field { get; set;}
to

   public string field;
I felt I had to reply to this comment to discourage this practice for a couple of reasons:

1) By convention anyone reading your code will think this is very strange, and it will force them to spend additional time reading your code to understand why you are breaking such a strong convention.

2) Using properties really will make your life easier when you need to track down a state change in your program. Detecting a state change on a public setter is a lot easier than detecting state change on a public field.

3) In C#, at least, using public fields where you should be using public properties will make creating an interface on existing code significantly more difficult - as interfaces can only define public properties, and not fields.

In short please don't do this. It's really bad practice just to save a couple extra characters, and if I inherit your code someday I'll probably want to strangle you.

actf··on A Mac Pro Mini
I'm not sure if you're being serious or just sarcastic, but no - that's not at all what I'm suggesting.

OSX provides a POSIX environment, and OSX is obviously not a Linux distribution. In fact Microsoft already provides SUA (Subsystem for Unix Applications) which is basically a POSIX environment, but iirc SUA is only available in certain versions of Windows, and only as a download from Microsoft, post installation.

So no I'm not in anyway suggesting Microsoft re-architect Windows as a Linux distribution. I'm suggesting that Microsoft make POSIX tools an integral part of the OS, like they are in OSX. For example, making bash the default shell, providing cmdline tools like powershell cmdlets to manage the system from the command line, providing a useable terminal etc. Basically similar to what cygwin and msys provide today, but better and with deeper integration in the OS.

actf··on A Mac Pro Mini
I agree completely.

Lately everyone seems to be convinced that we're witnessing the death of the desktop computer, but I wonder if this could be partly due to the lack of options in this market. Apple and Microsoft have both dropped the ball here. Apple has eliminated hardware options that power users are looking for, while Microsoft still doesn't provide a decent POSIX environment or even a passable terminal.

I honestly wonder what the world would look like if Microsoft were to suddenly switch focus and deploy a version of windows with full POSIX support built in, a decent terminal, a first class package manager, and a decent app store. Instead they are removing features like the start button that confuse existing users, and adding a Metro UI that power users don't want.

Maybe I'm just getting old and cynical, but I think we would be witnessing stronger desktop sales if Apple and Microsoft were providing options that users actually wanted.

actf··on How I came to love Windows again
I disagree. This is one of the main reasons that drove me to switch over to OSX. I don't think I'm alone in this either. I have a number of colleagues that have switched from windows as their primary OS for similar reasons.

I'd like to believe that if Microsoft were to add POSIX support, and a decent terminal as part of the default Windows installation it would go along way to improving their perception in the minds of technical users.

actf··on Vim users: stop using hjkl
Interesting argument, and I agree with you that the milliseconds saved are obviously small compared to the time it takes to design an algorithm, but I will make the following argument:

It isn't only about shaving milliseconds off your coding. I realize this is mostly anecdotal, but I find when I'm editing in vim or any good IDE, I can focus more on the algorithm and less on the act of typing, and a deeper focus on your program (i.e. data structures, control flow, etc) rather than on typing, does have an advantage.

Holding down the left or right arrow key while waiting for the cursor to move to the end of a line, or reaching for the end key is distracting and interrupts concentration, even if it is brief. Waiting for a cursor to move puts a greater strain on working memory because it means maintaining state information, in memory, for a longer period of time. While these distractions are somewhat minor for a single line of code, they really add up when you're' coding for 8 or 10 hours a day. In fact, I find these distractions add up to the point where I need to be editing in Vim or a good IDE to get in a state of flow.

Now, before someone calls me out on it, I'd also suggest that I don't believe using vim or an IDE increases the load on working short term memory. When you're initially starting out with a new tool, obviously it does increase the working load on memory, but once the key bindings are committed to muscle memory then, almost by definition, you're no relying on working memory.

actf··on Google's Nexus 4 smartphone sells out in the US in 50 minutes
Has anyone else noticed that when you repeatedly click between the two different models in the play store, the seems to change randomly from "Coming Soon" to "Out of Stock"?

As much as I want to like Android, this is the type of experience that just makes me want to head straight back to Apple. If Google can't even get their their flagship product's launch day store working properly, do I really want to trust their customer service if I break my phone, or their ability to manage an entire mobile ecosystem?

After owning early Android devices and being incredibly disappointed at the experience (crashes, incompatibilities, lack of software, poor battery life, lack of promised updates) I swore off getting another Android device for a long time.

In the meantime I've owned apple products, and always been extremely happy with the overall experience. With the Nexus 4 announcement, I've decided to give Android another shot. As I said earlier I really want to like Android, but it's stuff like this that makes me have second thoughts, and reconsider just getting an iphone 5.

In my opinion this is a huge failure on Google's part.

actf··on Nexus: The best of Google, now in three sizes
I'd also add that outside of the US there's still a huge lack of content (i.e. movies, music), compared to what's available on iTunes. I'm not sure what the difference is like inside the US
actf··on Nexus: The best of Google, now in three sizes
Apple is still miles ahead when it comes to real time audio processing apps. The obvious example here being garage band, but on the less obscure side there are a ton of guitar amp/effects apps on iOS (which are awesome if you play guitar) for which there is absolutely nothing even remotely equivalent on android.

My understanding is that the android api has improved recently with respect to the ability to support these types of apps, but for whatever reason there's still a noticeable lack of these apps.

actf··on Steve Wozniak gives jailbreaking the thumbs up, wishes iTunes supported Android
This is entirely anecdotal, but I think a lot of people underestimate how important iTunes is to the success of the ipod/iphone/ipad.

Speaking for myself, one of the main reasons I chose an iphone+ipad over android is because I love watching indie films, and iTunes is great for this. Their content library includes so much stuff that just isn't available anywhere else. Being able to instantly start watching a high quality version of a relatively obscure indie film can currently only be done on an apple platform (please correct me if I'm wrong here).

I would love it if iTunes was available on other platforms, but I can't see it happening. I don't understand why no one else has been able to secure these content deals that Apple seems to exclusively hold.

actf··on PowerShell vs. Unix shells
> To me, it's a matter of cultural differences. Think of it this way: a shell operates in two mode, script or interactive (the new fancy word now is REPL). How much time does your average PowerShell user spend in REPL mode?

I realize this is anecdotal, but I spent about 2 years using powershell exclusively, instead of mingw/cygwin, and I during that time I would always keep one or more powershell windows open. I see no reason to believe that anyone with bash, etc experience would not use powershell the same way. Imho it worked well as an interactive shell, its biggest failing was Microsoft's awful console window that hosts powershell. I would be really happy if Microsoft provided something better by default, like Console2 - although that program has it's own set of problems too.

actf··on Life's too short to write shitty software
Saying that, "the majority of them are soul crushing boring with no care or love for the developers" is a pretty strong claim, for which you've provided no evidence. Certainly some corporate jobs are soul crushing, but the "majority"?

The wrong startup, for the wrong person, can be just as soul sucking as a large corporation. There's plenty of startups that I would never want to work for. This suggestion that corporations are inherently bad and startups are inherently good is overly simplified, and very naive. Google, Apple, and Facebook I'm sure all have employees working on their TPS reports as well. In fact, I'm sure they have security guards, lawyers, and janitors many of whom enjoy their jobs, and add value to the world, despite not being software developers.

I guess I just find the attitude that everyone should be a developer working 80 hours a week for a hot web 2.0 startup very troubling. I worry that some of us have some strange delusions of grandeur. Is the CEO of the next Instagram, working 80 hours a week, really living a better life than the guy next door? In the end, if you're living a life you enjoy, what differences does it make where you work?

actf··on Where is the casual programming?
You're right that autocomplete does exist, but in my experience it's very limited in dynamic languages.

For example, the following code does not give me any auto-completion suggestions in eclipse or in vim:

  str = "hello"
  test(str)
  
  def test(val):
    val.[TAB]
actf··on Why I use vim
As someone who loves vim I'm both surprised and curious that he mentions using vim to write .NET code

While I love vim, I can't imagine using it to write anything significant in .NET - the lack of auto completion and an integrated debugger is a deal killer for me. I'd love to hear the author, or anyone else, elaborate on what kind of setup they use for writing .NET code in vim (note that I already use the vim plugin for VS, I assume this isn't what the author is referring to though)

actf··on Four months with Android (An iOS user's exploration)
> What bad performance?

Did you miss the video in the article? - The one where the iPhone scrolls as smooth as butter, and the other phone scrolls slow enough to make me wonder - is it frozen?

FWIW this has been my experience with Android as well. Obviously not every web page is like this, but even if 5% of the pages out there do this - it's a serious usability problem.

I just don't understand how the scrolling performance on android is still so inferior to that on iOS, especially when comparing devices where the droid has significantly higher hardware specs

actf··on Why not just use an IDE if you want IDE features?
A couple of observations and questions:

I find it interesting that a lot of folks in this discussion seem to accept that an IDE is advantageous for cases involving a large code base or a statically typed language. Why is an IDE any less appropriate to use with dynamically typed languages? A lot of the niceties provided by a good IDE for statically typed languages are still available for dynamically typed languages. For me, the case in favor of using an IDE is the same regardless of the language. The "killer features" an IDE provides are: autocompletion (i.e. intellisense style) and code analysis as you type. I see no reason an IDE cannot provide these features in a dynamically typed language.

Serious question, to those of you who believe an IDE is not useful for dynamically typed languages: Without intellisense like capabilities, how do you remember everything in the language's standard library and for that matter any non-standard libraries you use? Looking up a method or property in the documentation everytime you want to use it seems horribly inefficient. That's the type of job that is perfectly suited for a computer. It seems incredibly ironic to me that computer programmers are manually performing steps that a computer could easily be performing for them. As Albert Einstein said: "Why should I remember anything if I can just look it up?"

As some background I think Vim is a great editor - I use a Vim plugin in Visual Studio all the time, and I often use Vim for editing simple files. I think the addition of omnifunc in version 7 brings Vim a lot closer towards becoming an IDE. Unfortunately Vim's omnifunc capabilities are limited. Contrary to what you'd be led to believe by a lot of well meaning folks - Vim's omnifunc capabilities w.r.t python are nowhere near as capable as the same functionality found in Visual Studio or Eclipse.

I tried an experiment, wondering if I really was more productive in an IDE, and timed myself coding the solution to a couple of simple problems, using python in Visual Studio - I waited two weeks, so the solution was no longer fresh in my mind, and then coded a solution to the same problem again using Vim (note that I even gave Vim the benefit of the doubt here by using it second). For every one of the problems I tested I was significantly more productive in an IDE - sometimes by a factor as high as 2 or 3 times. Anecdotally I think the two features that make me so much faster are intellisense, and code inspection. Having errors appear automatically without the need to run my code is a huge time saver.

I think in the end it's not really about an IDE - it's about the availability of good intellisense like features, automatic code inspection, good refactoring tools, and a good debugger (integrated or not). If those features are available to me when I'm coding then I'll be happy and productive. If they're not then the tools I'm using are inadequate. As much as I would like to use Vim exclusively - unfortunately those features are not available (or do not work well) for the languages I predominately use (C# and python).

actf··on The lost world of physicality
I'd also highly recommend the book "Shopcraft as Soulcraft" by Matthew Crawford. It's certainly not a classic like "Walden" or "Zen and the Art of Motorcycle Maintenance", but I thoroughly enjoyed it, and found it very applicable to this type of philosophical discussion.
actf··on Why Ubuntu Linux is now ready for primetime
He mentions he's fed up with the financial cost and the need to activate Windows, and cites these as reasons to use linux. He then later suggests running Windows in a VM to deal with "dodgy programs". At least I'm not the only one that finds the irony here hilarious.
actf··on Why do apps from the same company look worse on Android than on iPhone?
Yes, it's absolutely still true, although certainly to a lesser degree than a few years ago. The obvious easy example is games. The number of AAA games available on OSX is still tiny compared to what's available on Windows.
actf··on Why do apps from the same company look worse on Android than on iPhone?
I've never really understood the Windows/Mac analogy here. I think the main reason many people end up using Windows over OSX, or any other OS, has always been the availability of software. People use Windows because there is a lot of really good software that just isn't available on other platforms. Granted this is slowly becoming less of an issue now that OSX is gaining some ground, but it is still an issue for a lot of people.

If you compare iOS to Android, I think you see the same pattern. One of the reasons the iPhone is so popular is because of the apps, many of which just aren't available on Android. Even when an app is available for Android it often feels like a second class citizen, or an after thought - just as it often does on the Mac.

When I look at the mobile world in this light it seems like we should be comparing iOS to Windows and Android to OSX, but then again maybe I'm just reading into the analogy too much.

actf··on Poll: What is your primary development system? Mac, PC, Linux, Other
I think these results will be inaccurate. How can I answer this question if I run Windows 7 as my OS, but use a Linux VM to do development work? Does Windows 7 count as my primary development system? What if I run Windows 7 at work, but do all my personal projects on Linux or OSX? Again, it's unclear to me, what counts as one's primary development system is in this scenario.

It's also worth noting that the pole permits more than one selection, which defeats the purpose of asking, "What is your primary development system".

actf··on Where the Unix philosophy breaks down
I think this depends a lot on how you define simplicity.

If we define simplicity as: a plain text interchange format, then clearly by definition a text based shell is simpler.

Piping objects instead of text allows a single command to do more, as it can operate on any of the object's properties that it understands. From a user's perspective, I believe, that this is simpler - however I will acknowledge that this is somewhat subjective. For example: The command ls | sort LastWriteTime would print a list of files sorted by their LastWriteTime. The command ls | sort Length would print a list of files sorted by their size. Doing this in bash is more difficult as it requires additional commands to parse the output of ls.

actf··on Why is TeX still used? What are some good, modern alternatives?
it is the best at handling mathematical notation

Honest question: What makes you say that? I've never completely understood why TeX is considered the best at handling mathematical notation. Personally, I've been very happy with the equation editor in Word 2010. I'll certainly acknowledge that there's likely better solutions than Word 2010, but before I invest substantial time learning something like TeX I'd like to understand exactly what it is I'm missing out on.

actf··on OS X Isn't for Developers
Say that for Visual Studio or Eclipse which aren't as polished in some aspects, crash frequently, or run on platforms that crash frequently. (I'm not saying that VS or Eclipse share all 3 of those properties, and the crashing bit refers to Windows).

I've never used Xcode, but I do use Visual Studio everyday, on Windows 7. In the 5+ years I've been using Visual Studio I've been very happy with it as an IDE. Prior to 2008 there were definitely some quirks and stability issues, but as of 2010, I very rarely encounter any issues. I have lots of unix experience, and I can honestly say that Visual Studio is an excellent piece of software, and a pleasure to write software with.

As for your point about Windows crashing, I've never once seen Windows 7 blue screen or become unresponsive to the point where I had to reboot a machine. Disliking Microsoft and Windows are fine, but without some real evidence that Windows 7 is less stable than OSX, or any other OS I think this is a baseless claim.

← PreviousPage 2 of 3Next →