skysight-inc/HackerNews huggingface dataset:
To me object oriented programming makes a program 'come to life'.
In our daily lives we are surrounded by objects: trees, houses, books... to name just a few...

I love the fact that I can reason about these 'natural' concepts in my code. Thinking 'in objects' sparks my creativity and boosts my imagination. It helps me to visualize otherwise very abstract notions.

I love to talk about a 'Book' instead of an Array. With good Object Oriented code, technical concepts and natural ideas seem to come together. To me, the benefits of writing object oriented code have more to do with human-computer symbiosis ( http://en.wikipedia.org/wiki/Smalltalk ) than with pure technical correctness, it just fits my mind.

If you want to appreciate the real beauty of objects I recommend to skip Java and C++ for a minute and look at Smalltalk. I just read the Blue Book (Smalltalk-80) and I had tears in my eyes.
The elegance and beauty of this language is just stunning.
Standard deviation is only 5 dollars? Sounds like everyone make the same amount of money.
I read feature lists of editors like this and wonder why people just don't use a good IDE like IntelliJ. It does everything in this list and a lot more with minimal configuration.
It sucks when it happens, but it's good to remind ourselves that it could happen. Mostly because we'll keep starting new companies all our lives (or so it seems).
Such a cop out.
Show HN: CKCalendar, an easily customized calendar for iOS
This isn't something I'm so nuts about. It's hard to look your coworkers in the eye and say 'I should make more money than you'. Seems like that's a problem there.

OTOH I could see myself saying, "I'm sure I could get $X elsewhere, so I would like to be paid that here. If I'm not paid that here I will likely leave." However, that makes you seem like a bit of a jerk.
One thing that stands out is, it seems like you can never purge this table. If it ever grows so large that it becomes a concern, you'd need to force your users to validate in another way and set a new pw using a fresh db
Agile is best practices around iterative and incremental development. That's it. It's a marketing term. Of course most of this stuff has been around forever. Most folks who "get" Agile say something like "This rocks! It's like we used to do things when we had a lot of fun and kicked out a shitload of code."

From observing teams the interesting thing is how many people used these techniques back in the day, stopped using them over time, and then don't want to go back because it's something "new". People are strange.
The current standard deviation between our salaries is less than $5 suggests that everyone is paid about the same, but that would seem unlikely.

I'd be interested in the salary distribution, and what sorts of things are discussed during the reviews- relative ranking (am I more/less productive than Joe?), improvement from last review (am I 10% more productive than six months ago?), company profitability?
To me, supporting multiple cursors is one of ST2’s killer features.

For one thing, it goes a surprisingly long way to making up for not having language-sensitive refactoring tools if you’re renaming things, changing parameter lists, etc.

Also, you can make a selection in advance rather than relying on the default of selecting the current word. That selection can even span line breaks and/or include indentation. If you then select some/all instances of the same text as starting points using Ctrl+D, you can change not only the copies of the text but also (for example) extend the selections to include whatever is immediately before or afterwards (even if that is different in each case) or move to the start or end of each line. It’s a quick way to do a lot of common search-and-replace type operations without getting bogged down in regexes or macros.

A related useful technique is using (on Windows) Ctrl+Alt+up/down, which moves up/down a line creating multiple cursors as you go. If you then do Shift+left/right, you can get a “column selection” effect, for example. (You can also drag with the middle mouse button to select a column.)

I hope ST2 will build on these basic features as time goes on. It could allow incremental forward/backward search without cancelling the multiple cursors, let you cycle around which cursor is shown or will be left when you hit escape to cancel multiple mode, maybe even temporarily split the display to show multiple cursors at once if they are far apart. There’s a huge amount of potential here.
That uses the OS file dialog, which is far too slow for my taste, although I've never actually checked to see what kind've shortcuts there are for it.
I'm not sure what your qualifications are to reply as you did, but I doubt it's on par with Arthur Berman, a petroleum geologist and editorial board member of The Oil Drum. His views are quite different than yours.

Here's an interview he did on the Kunstlercast: http://kunstlercast.com/shows/kunstlercast-192-arthur-e-berm...
Sqoot Co-Founder Back to Blatant Sexism:

https://twitter.com/avand/status/224401243961954304
Apparently the "subset of popular browsers" it works on is the null set - it doesn't work on any browser on any operating system on any architecture, C2D or otherwise.

I'm curious why the HN title hasn't been updated yet.
Wasn't this same guy trumpeting $6bil damages in oracle-google case...
> The kicker is that none of this has a damn thing to do with scheduling. Once you can tell reliably tell me you're going to deliver 10% of the remaining total work in the next two weeks, I know for a fact you have 18 more weeks left in the project.

Wait am I missing something or did you just say that this has nothing to do with scheduling but then extrapolate some estimate in order some up with a schedule? (not trolling, legitimately confused)
Why we are not satisfied with the personal work
WikiLeaks wins case against Visa
> It's not fuzzy. It's unit-less.

Except that somebody will come along and just use it as a proxy for some unit they care about. And that will probably be time. Tada! You're right back where you started.

Counting things out in magic beans doesn't make the problem go away. Humans are pretty good at this exchange-rate business.

You might as well estimate in domain-specific terms that you can later actually verify and calibrate. Such as SLOCs, function points, object points, modules + tests and so on.
Symantec Software Update Rendered Many PCs Useless
The more I read about the housing market in SF the more it looks like a disaster. Compared to SF, NYC has done a number of things better:

1. No new rent control leases since 1973 (IIRC) although you can inherit a rent control apartment if you've lived there for two years. I'm sure this system is abused but the SF equivalent is a huge number of units being left vacant largely due to rent control;

2. Exit clauses on rent stabilised apartments for the rent getting too high or the occupant earning too much. The rent part is abused since between tenants you're allowed to raise the rent by 1/40th or 1/50th (I forget which) of the cost of capital improvements, which leads to renovating the kitchen/bathroom and probably overstating the cost; and

3. Most importantly, NYC has new construction, even in Manhattan.

What SF really needs more than micro-apartments is:

1. A gradual phase-out of rent control including income-based assessments; and

2. More importantly, some kind of plan that allows for new construction.

As much as I like the weather in the Bay Area, between this and public transport (NYC subways and comparatively cheap taxis > BART+Caltrain+munibus) I'm glad I live in NYC. In lots of ways I think it's got a lot going for it in terms of doing a startup here too.
So any sense of how much these new micro apartments in SF are going to cost?
I agree that it's hard, but I don't think that's the end of the conversation.

Why is it hard? Keep in mind that the results are filtered through a discussion with the boss, so once salaries are public, you're saying "The boss and I agree that I should make more money than you", so there's a shared accountability.
> Agile is best practices around iterative and incremental development. That's it.

I wish I could broadcast this on TV.
I'll offer one exception to the "don't work for free" rule: valuable pro-bono.

If you pick your charity well, you'll get kudos from it, and exposure to useful decision makers. Many charities have boards made up of well-off or powerful decision makers in other places that are willing to spend money in their day-jobs, but like you are working pro-bono for the charity.

If you circulate with these people, and deliver a high-quality product, you get the benefit of exposure to the right sort of future customers, the benefit of kudos for pro-bono (in the face of people who are also pro-bono and so value your input as much as they value their own), and you don't have the problem of your product being undervalued, because it's for a charitable good, not a discount for someone who should actually be paying for it.
Introducing, Wall Street Jin
PHP tutorials from Codular
Hi, I'm the author of TapChat.

I recommend connecting the TapChat server to ZNC, this works quite well.
It is hard to pin down the author's bias, or yours, without understanding what kind of development the author has done. I look at this as more of a Text Mate 2 vs Sublime Text 2 post.
Yes. What you end up doing is getting good at determining what percentage of remaining work you can accomplish in each sprint. This information can be applied offline to schedule. You get a schedule without ever having any conversation about duration or time. The "magic" works because by picking what you can do in a sprint, you are associating a certain percentage of work with a time unit. So you it's not like there is no time discussion. It's more accurate to say that you don't keep multiple sets of books.

Like a cool programming concept, it's one of those things that once you see, you're like wow! But granted it can be a head-scratcher beforehand. Like I said, I came at this as a skeptic. Once you see it work in multiple teams, however, you don't want to go back to the old way. It just doesn't make any sense to do it like that.
How Long and Deep Before Price Decimates Value
Hi, I'm the author of TapChat.

There are very few things about the protocol that are IRC-specific, so this could likely be added in the future. In the meantime, I've had success using Jabber in TapChat via Bitlbee.
I never really used IDE like IntelliJ or RubyMine. But I always feel they are too bloated. Maybe just different use case.
Anti-Vacation Sentiments Are Naive
Or on Windows, it’s Ctrl+Shift+up/down.

Also:

Ctrl+Shift+D duplicates the current line by default (or the current selection, if any).
Ctrl+Shift+K deletes the whole line.
Ctrl+K twice deletes to end-of-line.
Ctrl+K Ctrl+backspace deletes to beginning-of-line.

Combine duplicate, move up/down, and the Ctrl+D multi-cursor stuff, and you have a copy-and-paste coder’s dream editor. ;-)
You should attend one of my classes. I ask what Agile is and then tell everybody it has no meaning at all. It's just a big blanket term we use to re-wrap a lot of that older stuff (and some new stuff too).

In my opinion the biggest problem Agile has comes from the people who like it. Skeptics are fine. I can show you this stuff works. But people who did "Agile" one time and become cheerleaders and set in their ways can be insufferable.
Hi! I'm the author of TapChat.

Scrolling and switching between windows is quite slow and unpleasant with Irssi+Screen+ConnectBot on a phone. TapChat has a native UI and is much more responsive regardless of your connection quality. It also sends push notifications to your phone when someone mentions or messages you.
The current standard deviation between our salaries is less than $5 and we’ve improved our profitablity since implementing this over a year ago.

It sounds more like this policy is to guilt their employees to accept less money (thereby improving profitability) and less about keeping employees happy...
That's fantastic! One of the reasons I keep coming back to DDG is that you guys are so responsive to users' needs. That's what made me a loyal DDG user in the first place.
To be a consultant, rather than an hourly-rate freelancer, you need two things:

- insight

- reputation

The reputation (from prior work) gets you in the door, and the insight (from your wealth of experience in the field, which you have, right?) is what gives you the right to call it a "practice", and the right to get you the 5- and 6-figure paychecks for each engagement.

Insight is more than just experience; you'll have to offer something unique and valuable for each customer that they can't just get from their local recruitment agency for commodity rates.

You have to be able to communicate at senior management level, in big picture terms, but also operate at the ground floor and all the way up. You must be able to advise at each level of the organisation, while understanding the nuts and bolts of the guy doing the programming (and quite probably doing it yourself).
another fast way to select all instances of a word/phrase for editing is to find in file (cmd+f) type out your variable/whatever and then option+enter will find all instances of your search text and highlight each for editing via their own cursor
This is quickly turning into a circle-jerk, I really haven't seen any new arguments for or against PHP in the past ~5 years.

Every article is just another op-ed from either a) the fan base, ever-proclaiming PHP's virtues, or b) the haters, ever-pointing out PHP's flaws. The 2 groups will never reconcile and so we're left with mountains of repetitive discourse that's as stale today as it was 5 years ago.

Just imagine if all of this time spent arguing were applied to a project (whether it be a PHP project or not)...
Auto Transport Orem, Utah
Turn ordinary travelers into your own personal, international delivery service
readability.com is also good. I use it when I want to send some story on my Kindle e-reader.
You have minimal perpsective. NBC has been selling parts of the live Olympic coverage on cable for years
The people who originally came up with OOP knew what they were doing. The inspiration was the cell, which hides immense mechanical complexity behind a simpler interface of electrical and chemical signals. When interfaces are simple, it limits the unexpected dependencies that can exist between software modules. Alan Kay wasn't saying, "Go off and write bloated objects" but, "When software must be complex, strive to provide simple APIs."

For example, when you write a SQL query, do you have to micromanage the database in how it's performed? No. That's an example of encapsulation. The implementations are different, but the interface is fairly stable. That's something OOP-like that works very well-- an interface that hides (encapsulates) complexity.

Objects are general and powerful, and that's part of the problem. "Power" isn't always good; GOTO is also extremely powerful, but should be used sparingly. Objects are not specific. Is it a function, or a tangle of methods, or a data object, or a "singleton" module? This isn't clear, and it becomes even less clear in the industrial world where tens of hands pass over code and it turns into mashed potatoes.

There are some good ideas in "object-oriented programming", but it's also an extremely complicated programming model and it's hard to develop OOP code correctly. If you don't know what "open recursion" is and why it's dangerous, you shouldn't be doing OOP.

What happened in the 1990s is that there was an effort (now becoming acknowledged as a failure) to commoditize programming talent-- to make 5 mediocre programmers able to replace a great one, and thereby prevent what we see now (the long-term "threat" of top software engineers outclassing professional managers in social status and compensation). Thus was born a bunch of design-pattern cargo-cult stuff designed to make programming slow, tedious, and limited but easy enough that mediocre people could do it, if they were stacked on top of each other in large enough numbers. Thus were born bloated, horrible codebases that bastardized "object-oriented programming" beyond imagination-- 21st-century spaghetti code.

People should be required to learn the basics of programming first. They should start with immutable data objects, referentially transparent functions. Mutable reference cells can come next as an optimization. Then, it's a good idea to learn type systems through OCaml or Haskell. After that, they can tackle the hybrid OO/FP of Scala. (Once you've learned Scala, there's no reason to use Java unless you need performance.) There are times to use OO and times to use FP, but if you aren't smart or curious or dedicated enough to grok FP, then you'll never actually understand OO either and you have no business trying to use it.

People learn best when they're presented with one new concept at a time, and the problem with OOP is that it presents tens of new concepts at the same time, with no separation. It leads to cargo-cult programming because people start coupling concepts that don't necessarily belong together.
As an American currently living in Hong Kong I can verify what your friend was saying. Everything is smaller, but everything you may need is also easy to get. Forget the milk? Just go downstairs. No need for a big refrigerator since you are steps away from the grocery store.

Everybody also goes vertical with their storage. There are plenty of clever storage solutions that may be unique to Americans but are fairly ubiquitous over here.

That said, it's easy to get a cluttered looking space real quick. I've become more of a minimalist because of that.
Really, that was just my iPad and autocorrect, followed by poor editing.
Something I've wanted to build someday but never did is exactly this but for xmpp, etc. I'd love to have a central place with my chat logs, etc.

Someone go build it, please!
Hi again. We spoke about all this a few days ago. Sorry to hear you're disappointed with the app.

- The only way to stop receiving notifications is to uninstall the app, there is no disconnect/detach option.

This is a reasonable request and is on my list.

- It doesn't have support for identd (necessary for old ZNC bouncers, and for some bitlbee builds).

As I mentioned, you don't need "identd" for ZNC. TapChat supports password-protected servers and works just fine with ZNC.

- The UI is very young, not comfortable to use, no easy channel switchers, etc.
- No buddy/friends list.

- Install fails in "supported' nodejs versions, almost works only on v.0.8.0

There was an issue with certain versions of nodejs, this has been fixed.

- Complete lack of settings, including what I said about the most basic thing, connecting/disconnecting.

You can connect/disconnect from IRC networks in Settings > Manage IRC Networks.
Command+T works on Mac in addition to Command+P (mimics TextMate). He meant Ctrl+P on windows.
I don't know about its Node.JS implementation, but I think TapChat works great as a lightweight client to IRCCloud[1] (which is kind of like a bouncer on its own and don't have much option to configure to begin with). It simply Just Works™.

Some customization and a little bit of visual improvement for message would be welcome, though. Especially colors, I understand they want to keep it monochrome-ish, but trying to find message burying with joins/leaves is not really fun since everything looked the same. I wish it has IRCCloud-like join/leave grouping.

[1]: https://irccloud.com/
> it's worse than a pie chart because visually it's much harder to compare sizes of horizontal and vertical rectangles

Research I've seen suggests the exact opposite -- that people are great at estimating area of rectangles, and terrible at estimating area of circular or triangular shapes. They know which circle is bigger, but don't have any idea by how much bigger.

That said, pie chart slices work for simple data not because of area, but because all you have to compare is the simple length of the circumference segments. That's a single dimension, and easy to compare.

See "Pizzas: or Square? Psychophysical Biases in Area Comparisons", http://groups.haas.berkeley.edu/marketing/PAPERS/PRIYA/p5.pd... for how people lean on a single dimension for size or area comparisons.

Unfortunately, as this cell phone OS chart is trying to support comparison of multiple sets and subsets, circumference segments alone are inadequate to convey the relative sizes of the sets.

The more complex the information, the more the usefulness of the nested rectangles versus pie chart slices becomes clear. Imagine for example a visual representation of drive space usage by directory and subdirectory.

Here is a drive space chart using nested rectangles:

http://grandperspectiv.sourceforge.net/ScreenShots/1_0-Folde...

For comparison, here is an attempt do do the same using pie charts:

http://www.daisydiskapp.com/img/d4.png

In fact, if you use both apps, you'll see DaisyDisk is not able to give you the "grand perspective" in a single view, it requires clicking to zoom in on a slice it then expands to a full pie to drill down.
repost of 2 week ago http://news.ycombinator.com/item?id=4198271
On OSX, press / or ~ to get a path text box with tab completion.
Thoughts on Paul Rand
Do you think you'll ever have kids?
Pivot and figure out how to turn the people who are actually interested in your product (aka "signups") into a revenue stream. In other words, you are getting your message across, you are just not closing the sale and it appears to be because you are focused on the wrong target market rather than monetizing low hanging fruit.
I'm mostly peeved by the goldfish memory this industry exhibits.

Partly a function of the pyramidal demographics, I suppose.

The ACM and IEEE doing the whole Smaug routine with the treasures of decades of research isn't helping either.
First, search google for "sublimetext save all." You should then get this website http://www.sublimetext.com/docs/commands.

Now, create a new user defined bind for that command (you can google how to do this). Or you could use Ctrl+Shift+P+"save".
Recently we got to this in Paris: https://sphotos-b.xx.fbcdn.net/hphotos-snc7/s720x720/396654_...

Quick translation: it's a 3.16 square meters (34 square feet) flat on sale in the 10th district in Paris.
NaCl could make this feasible...
Somebody might come along. And they might not. The point is you don't have to create an exchange rate. It's not needed. When people do that they do it because they don't know what the hell they're doing. As I said, if you don't know what the hell you're doing, don't use story points.

You might as well estimate in domain-specific terms

Actually no. You could use your astrology chart to estimate, but the purpose here is to get better and better as you go along. Remember that we re-estimate each sprint (or at least we should). So the point is the informal model of execution evolves over time. The old way was constructing this huge model and spending maybe 20 hours creating the perfect estimate, then executing. The new way is spending 2 hours each sprint over 10 sprints, increasing accuracy each time. You want a simple, less complex model that can be rapidly iterated. Lots of little bad guesses converging on an answer based on real-world execution data.

This is getting much longer than a HN thread. I would caution you that things like COCOMO exist as a way to mathematically model how time interacts with development. It's a model, not an explanation. Don't confuse tweaking numbers in a spreadsheet with controlling or changing execution. Various models have various uses. Technology development does not break down in a scientific management kind of way. Yes you can decompose technical problems into tiny pieces and solve them. But people working together are not robots, and their work cannot be broken down in the same fashion as a algorithm can. Wish I had time to go into this. Check out this blog entry. http://tiny-giant-books.com/blog/agile-backlogs-sigh/

Thanks for the chat!
Yeah, I didn't mean to give you a hard time for the ipad autocorrect, I just thought the end result was funny.