HNHacker News
TopNewBestAskShowJobs

jodoherty

608 karma · joined April 13, 2011

https://www.james-odoherty.com/
submissionscomments
jodoherty··on Windows 8 to have built-in anti-virus - there's good and bad news
I doubt you noticed it yourself, since it's nothing out of the ordinary in a tech discussion, but your original comment is condescending in tone. Given that his entire business is built around providing customer service that uniquely avoids the kind of strict, condescending, and unsympathetic approach towards computer security your comment implies, I thought his reply was informative and appropriate rather than overly sensitive and defensive.

If anything, it really highlights the additional burdens of his approach and suggests that computer security as a service to consumers is about more than just security.

jodoherty··on Stop writing good code; Start writing good software.
As a younger programmer, I've come to the conclusion that good code shares good interfaces, decoupled relationships, appropriate abstractions, and clear responsibilities regardless of methodology or paradigm used, so that your code is easier to implement, change, and maintain. After all, the end result is less complexity, and you can stub out some interfaces and get coding fairly quickly.

However, if you lack experience with certain kinds of problems, the initial investment of designing good code requires quite a bit of thought and care to do right, otherwise there's the risk of introducing lots of unnecessary complexity by adding lots of unnecessary classes and relationships.

And that's exactly the problem Alex is addressing in his blog post, because his fellow programmers don't share those same principles of good code. As a result, they get caught up in making large, cluttered interfaces with lots of interwoven objects that have shared responsibilities, and then they call that good Object Oriented code (because there's lots of objects, right?). They might even apply as many acronym riddled patterns as they can, because that's the way some really smart guys who wrote some books suggested, and they want to do things the right way.

In other words, there's a cargo cult of OOP, and it loves complexity.

In contrast to that, it sounds like what Alex does when he come across something where the architecture necessary isn't very clear is essentially what I do: carefully write code from the bottom up and refactor it as I go, if at all. That way, the relationships inherent in the code become clear, and you can create the minimal number of classes and relationships necessary to decouple those relationships.

And so what he's suggesting is that other programmers do the same. Don't waste time trying to develop a solid architecture from the top down when it isn't immediately obvious and start working from the bottom up instead.

Of course, in ten years, he'll probably be writing most of his software from the top down, finally capitalizing off all those years of hard earned experience writing code from the bottom up, but that'll be then, not now.

jodoherty··on Steve Losh's .vimrc
I've basically memorized my .vimrc and .gvimrc files from retyping them over and over again, but then I take the approach of using the standard configuration when possible and only customizing the minimum required, so it's not as bad as it sounds.

The power of VIM as an effective and consistent text editor is far more important to me than the power of VIM as a highly configurable editor.

jodoherty··on Ask HN: What are your music prototyping solutions?
No problem, but I would encourage you to reconsider your train of thought.

The LPK25 is limited, but it's definitely more convenient for getting down ideas than using a computer keyboard, since once you have it set as the MIDI input device in an application, you can hit keys and play notes without having to worry about what application is in focus and what its keyboard shortcuts are. Computer keyboards also only recognize up to a certain number of keys being held down simultaneously (since they're designed with the assumption that you won't be pressing five keys in the same row at the same time) and don't provide velocity or intensity information, but you always get note intensity and velocity MIDI information out of a MIDI keyboard. As for the limited number of keys, you can shift the keyboard down or up entire octaves with the buttons on the left and then record the left and right hand parts separately in two passes. You can also look at it and see what notes you're pressing instead of having to translate between a computer keyboard and a musical keyboard.

So I'd say it's quite useful compared to having just a computer keyboard, and the small size means you're that much more likely to have it with your computer, even if your computer is a laptop and you travel a lot. Your argument that it only does what you could still do with a computer keyboard is like saying the virtual keyboard on an iPad is just as good as using a bluetooth keyboard, since they offer the same keys and basic functionality... so a bluetooth keyboard for the iPad is useless. But you'll probably still want to use that bluetooth keyboard with the iPad if you're doing any amount of writing, because it just makes it easier to type (and it frees up the screen space for what you're writing).

If you have the desk space though, Behringer makes some cheap gear that usually works fine, so go with a larger keyboard and check out the Behringer UMX610, which should work perfectly with Linux:

http://www.bhphotovideo.com/c/product/672870-REG/Behringer_U...

You could even use such a keyboard for actual performances if you absolutely had to, but it probably doesn't play as nicely as your Casio, and you should probably figure out your latency problems in Linux. (To be honest, if I were doing anything music related on an everyday basis, I'd much rather use Cubase on a Mac. Linux software is a disheveled mess of parts that can fit together quite nicely, but can also cause a lot of hairpulling too.)

Finally, you probably don't want to hear this, but if you have time and energy for ear training practice, relative pitch recognition would make your life a lot easier and solve most of your problems. Then if you can work out what the first few notes of your song are and you figure out the key, you can figure out how to write down the rest pretty easily from there. Then you could use some of the score editing software, trackers, or anything else that people mentioned in the other replies.

As it is now, it sounds like most of your musical fluency is trapped away in the muscle memory of your hands, and that's the real source of your current problem, since it's the same as being able to speak and listen, maybe even read a bit, but not write anything.

Anyway, just something to consider. Good luck, and I hope you find something that works for you.

jodoherty··on Ask HN: What are your music prototyping solutions?
I use a little Akai LPK25 keyboard (fits perfectly right above my computer keyboard, so I just reach up a little to play) with seq24 for editing/recording MIDI notes and zynaddsubfx as a synthesizer on Linux. It's a straightforward, simple, and clean setup. Notes in seq24 are displayed in piano-roll format, and you can compose looping patterns that you can then combine into song patterns. I'll also use an electric guitar with jack-rack to mess around with ideas on and record stuff in Ardour with, or even tab it out in tuxguitar, since I can find my way around the notes on a fretboard a bit more easily sometimes.

I also bought a license for Renoise, which I use occasionally, but trackers are too involved for my tastes and I prefer a piano roll layout for editing notes. It does allow you to use your computer keyboard as a music keyboard though, and the layout isn't bad, but you're still better off using a small MIDI keyboard.

I used to use Cubase (got the full version in a box somewhere), but it's overkill for an amateur like me, and I don't even have a Windows PC or a Mac to run it on anymore. Maybe someday I'll buy a Macbook Pro or something.

http://www.akaipro.com/lpk25

http://www.filter24.org/seq24/

http://zynaddsubfx.sourceforge.net/

http://www.renoise.com/

jodoherty··on Are you a programmer with chronic headaches? If so please read
Have you tried rowing? It exercises your whole body and helps reinforce good posture when you make an effort to maintain good form. I plan on buying my own indoor rowing machine next month.
jodoherty··on Richard Hughes on color management in Linux and GNOME
These guys have done some nice work in an area that's too easy to overlook. I'm really excited to see how their full screen color management idea works out, since the main problem I used to have with calibrating stuff in Linux is with calibrating each screen in a multi-monitor (dual-head, triple-head, etc.) setup. I've only ever had luck loading profiles for each separate screen when using Xinerama and the proprietary NVidia drivers. Everything else I've tried either makes it impossible to load an ICC profile or will only allow one profile for both screens (since all the screens use the same gamma table with certain drivers), so you can calibrate one monitor or you can calibrate the other one, but you can't have both calibrated.

For right now though, huge 1920x1080 resolution screens are cheap enough now that having just one screen isn't so bad anymore, but it's only a matter of time before you'll pretty much need two or three screens like that. Fortunately, it sounds like these guys will have a real solution worked out within a matter of years.

jodoherty··on Arch Linux – "It is what you make it"
How do you see it as a form of hinting unless we have different definitions of what hinting is?

As I would define it, hinting is the modification of the appearance of the font at smaller sizes, usually away from the actual outline design of the font and the original spacing, in order to make it fit into pixel boundaries for the purpose of clarity and readability. Used with subpixel rendering, you can get sharp, punchy text that is even more readable, but I wouldn't consider subpixel rendering by itself to be hinting.

If anything, unhinted subpixel rendering (where any auto-hinting has been disabled and all font hints are ignored) allows the font to look more like the intended outline design in spite of being rendered at a small size on a low resolution screen by boosting the horizontal resolution and interpolating the values between points where the outline crosses partial pixel boundaries. That is, it allows all the glyph metrics to remain intact at smaller sizes while improving readability, whereas the very notion of hinting implies that those properties have been intentionally modified for the purpose of readability.

jodoherty··on Arch Linux – "It is what you make it"
As a former Slackware user myself, I was mostly impressed by ArchLinux's package management and the user-maintained wiki. As far as learning the guts of the system goes, I'd say that ArchWiki has become one of the best searchable references out there and is the main thing that separates Arch from Slackware.
jodoherty··on Arch Linux – "It is what you make it"
I always had the opposite experience with font rendering. I always have to disable all hinting and turn on subpixel rendering to get results I like, since I prefer thicker glyphs that have more consistent forms, kerning and spacing at all sizes, even in print (ala Mac OS X) rather than having glyphs that have been forced into pixel boundaries and smushed closer together at smaller sizes for maximum glyph readability (ala Windows).

To me, the spacing and kerning of the fonts matter much more than the clarity of the individual glyphs. Seeing letters smashed together or with wide gaps between letters drives me insane...

jodoherty··on Newly Discovered Planet: Hot, Muggy And (May Be) Livable
Perhaps the water on earth became trapped as part of a migrating space biosphere, just one of many oceans floating around in space, insulated by the frozen ice coating the outside and given energy by small collisions with other matter until it collides with a solid body and forms a planet like ours.
jodoherty··on Student Loans, Gateway Drug To Debt Slavery
The Bill Gates quote at the bottom is quite significant. I get more out of Yale's recorded Physics II lectures on iTunes U than I do out of the lectures at my current college, even with the added interaction with the instructor. It's amazing how much you can learn or aid your learning using just free resources on the Internet.
jodoherty··on If TV Companies Released Authorized Torrents With Ads, Would You Download Them?
I would rather just pay them a small subscription fee to download their advertisement-free content via torrents after watching streaming advertisement-laced versions for free on their website and choosing which shows I'd actually want to buy and enjoy.
jodoherty··on Your problem with Vim is that you don't grok vi
Thanks. I think it'd still be useful though to shift from the paradigm of everything goes in my text editor to the paradigm that my text editor is already in everything.
jodoherty··on Your problem with Vim is that you don't grok vi
This is one of the reasons I wish all standard text controls came with an optional VI mode.
jodoherty··on Functional Programming Is Hard, That's Why It's Good
Like you said, functional programming isn't hard, but I think the problem is that learning a completely new language with an unfamiliar syntax and abstractions is hard, and trying to apply functional programming techniques in most current mainstream languages is equally hard.

The fundamental language feature that makes true functional programming possible is first class functions, since that allows higher order functions and anonymous functions. The lack of that feature in most mainstream languages is why functional programming feels so foreign to most programmers. Sure, you can write functions without side effects, but making good use of them without polluting your namespace, explicitly passing around function pointers, or having lots of extra boilerplate code lying around is difficult in a lot of languages.

That's constantly changing though. I think as more languages start adding support for higher order functions, even established languages like C++ and Java, we'll see more and more people using a functional style and less nonsense discussion about how "hard" it is, because it really isn't hard at all. Already, you see bits and pieces of functional Javascript code littered all over the Internet on a regular basis.

In fact, I'm willing to bet that at some point in the future, functional programming techniques be considered easier and more natural than a purely imperative approach, simply because more programmers will have encountered it sooner in their programming careers and made effective use of it. It'll be an everyday occurrence to meet a programmer who uses anonymous functions for callbacks and commonly makes use of fold, reduce, and map instead of explicit loops and state variables.

Meanwhile, meeting someone who knows what a pointer is or even how to manage heap memory will be a one in twenty event, and chances are that person will be an embedded developer who also knows how to write interrupt handlers and even a custom, deterministic memory allocator for real time applications.

jodoherty··on Command line tools for web developers
I hate that the default escape key sequence clobbers over Ctrl-A though, so the first thing I always have to do when I log into a new server or account is this:

$ echo 'escape ^uU' > ~/.screenrc

Or I quickly start tearing my hair out and screaming profanities every time I try to do something.

jodoherty··on Kate Turning 10 Years Old
I'm not a kate user, but what about just redirecting all the console output to /dev/null ? Then you shouldn't get any output, and so you can just send it straight to the background.

$ kate &> /dev/null &

jodoherty··on The Art of Assembly Language Programming
Along with JWasm -- http://www.japheth.de/JWasm.html -- and DOSBox, this can make for a lot of fun.
jodoherty··on Return of the Mac (2005)
If you have Pages for iOS, an iPad stand, and an Apple wireless keyboard, you can actually get by pretty well using the iPad for word processing, assuming you sit at a desk to write.
jodoherty··on Return of the Mac (2005)
You get the features of Linux with the ability to run commercial content creation apps like Flash, Photoshop and Cubase. It's very win-win for someone who does a lot of different kinds of work. And since all the shortcuts use Command, the Control key gives you free Emacs keybindings in every text field.

I was only able to give up on Mac OS X when I decided to give up on Adobe software thanks to Adobe's abysmal customer service. Now that I don't need to be able to run Photoshop, I just use Linux.

jodoherty··on MS-DOS is 30 years old today
You should check out FreeBASIC and Qb64. Maybe you can revisit some of those memories. :)

I remember learning VGA programming in C and assembly language how it was instrumental in helping me finally grasp just how low-level C really was. That's when I finally realized what pointers really were and just how useful and dangerous they could be.

jodoherty··on Ask HN: My iOS app got pirated, what to do now? Raging? Nothing? Partying?
I wouldn't worry about it. With iOS apps, it's much easier for people just to buy your app and have it installed and running on their device than it is to try and pirate it, so unless you're seriously overcharging for your app, most people will continue to just legitimately buy and use it.

You could also charge a small recurring service fee for accounts and then give the app away for free.

jodoherty··on Detroit DIYer cooks up stronger, lighter steel, shames scientists
I dunno about lumps, but with a little welding knowledge I can imagine a lot of things I could try building if I could buy prefabricated shapes and sheets of the stuff.
jodoherty··on Detroit DIYer cooks up stronger, lighter steel, shames scientists
That brings up another question: How much will it cost and how can I buy some?
jodoherty··on 1Gbps fiber for $70—in America? Yup.
Nobody needs it right now, but once most people have the option of it, new ways of needing it will appear.

This would be great for cloud computing with family videos or games that you rent online which stream all the content directly from the servers.

With the rise of IPv6, it could also lead to the development of a more distributed web content model where people host a lot of their own content for others to access and browse using personal web servers instead of P2P clients, since pretty much everyone will have the extra processing power and bandwidth.

There's a lot of uses, and many of them could easily become the new "needs" of the future.

jodoherty··on How I doubled the price of my software product and sold ten times as many copies
If you can get away with unreasonably high sounding prices, it's only because there's a demand for your service and not enough suppliers with your level of quality. As such, it's only a matter of time before someone comes by and undersells you with a similar service.

So it's not just "more fair" to set reasonable prices -- like your gut suggests -- but they also discourage competitors from appearing.

I guess the real question is whether or not you're willing to risk future competition for the short term benefits of increased profits.

jodoherty··on Microsoft refuses to comment as .NET developers fret about Windows 8
I agree. For most existing users, especially power users, this will probably be as insignificant on the desktop as Active Desktop and Active Channel were in Windows 98 or maybe desktop gadgets in Windows Vista. I mean, who even remembers that stuff?

For some users like my dad, the tiled interface with a touch screen should make it easier to use the computer. He doesn't use them enough to learn the whole stacks of windows metaphor and all the operations involved with it, but he can pick up an iPad and use it just fine.

The real significance I see here is that Windows mobile developers with just the skills of a web developer can now target desktop and tablet users fairly easily with the same exact code and a similar UI. If Microsoft releases their own App store for Windows 8, then that provides a unified platform for developers to sell the same product to every kind of Windows user from kids with smartphones to grandparents with a desktop PC.

And if the tiled interface takes off with the not so computer-literate, there'll be a great new demand for applications that fit into it's metaphors to prevent the jarring experience of being thrust back into a classic Windows-like environment, kind of like the demand for GUI applications after Windows supplanted MS-DOS.

jodoherty··on [dead]
The lack of a delete key never bothered me in Mac OS X since every single text field gives you bloody Emacs shortcuts.

If anything, it's more convenient to be able to do Ctrl-A, Ctrl-f, Ctrl-f, Ctrl-d, Ctrl-d than reach all the way over to Home, hit right arrow twice, then hit Del twice, especially when you use caps lock as Ctrl.

You can kind of do the same in Linux (GTK+ has emacs keybindings you can enable inside text fields as well), but it'll always work better in Mac OS X because they have the Command key and forced everyone to make good, consistent use of it, so using Ctrl for emacs shortcuts usually doesn't clobber anything.

Honestly, globally available emacs keys and the ability to run Photoshop/Premiere Pro/Cubase/etc. without giving up my UNIX-like commandline are the two major reasons I like using a Mac. Quirks with Finder don't bother me since I only use it to browse files -- almost everything else, like moving or copying files, I usually do using the commandline anyway. Things are also more consistent and more stable with a Mac, since they tailor the hardware and software to specifically match each other and Apple is very big on getting developers to follow their UI conventions. I also enjoy using multi-touch gestures on the generously sized touchpads they have on the newer Macbooks and Macbook Pros.

But other than that, there isn't anything Mac OS X has to offer that Linux doesn't provide, assuming you're using it on well-supported hardware (which can be hit or miss when shopping sometimes).

Everything really is slower on a Mac too. All the file operations are hooked into Spotlight so it can keep track of all your files for a search feature people like me never use, and I don't think HFS+ performs that well to begin with. Not to mention the hardware is a weak compared to equivalently priced PCs.

Even so, I still find that everything's more than fast and responsive enough for me, and you'll always be able to find someone who'll pay a good price for your 1-year old Macbook Pro, making upgrading to the latest model that much cheaper.

jodoherty··on 16-year-old earns WSU degree without stepping on campus
I was enlisted in the military for 4 years. I made a lot of good friends, traveled overseas, read a lot of Stoic philosophy, and did a lot of growing up, and I wouldn't give one bit of that experience up for the world.

You'll probably never experience military life, and probably neither will she. Does that make your life any less of an experience? No.

Finishing a degree online may not have given her the college experience you had, but that doesn't make the experiences that she did have any less meaningful or fulfilling, especially for a young teenage girl.

← PreviousPage 4 of 5Next →