Well, not only that, but transparency rules create certain perverse incentives. If all emails are discoverable, for example, then people will simply tend to shift their meaningful conversations to the phone.
4,603 karma · joined March 5, 2008
Well, not only that, but transparency rules create certain perverse incentives. If all emails are discoverable, for example, then people will simply tend to shift their meaningful conversations to the phone.
1.) Time. Although I'm (perhaps overly) sensitive to which foods are healthy and which aren't, I often find myself eating sub-optimally simply because I can't muster the time/energy to make something healthy, do the resulting dishes, etc... And veggies can be some of the most labor intensive. Or, you want a quick snack that's also really healthy? Here's $5 for a small bag of kale chips (see "Cost," below.)
2.) Skill. It's taken me a while to learn to cook well enough that much of what I make is at least on par with (non-gourmet) restaurant food.
3.) Cost. Compare the beans with sugar to higher end -- organic, in particular -- varieties.
I think that if you do things correctly, your concern is mostly mitigated. My last job was Java/Spring. As someone noted above, you really don't want to be working with Java/Spring without IntelliJ.
But we never had issues with anyone breaking builds due to screwing up project files, because those weren't shared and the project would run/build/test immediately after import into the IDE without any additional tweaks.
I think it's sort of odd that many folks complain about IDEs, but then use vim with a million plugins. Isn't vim + plugins = IDE? Or, if the overall point is "java sucks, don't use java" then fine, but if you have to use it, I couldn't even imagine using plain old vim without any language support...
I don't think it's necessarily confusing, it's just that usually we tend to think of the elements we're working with (variables, objects, functions, etc...) as taking on values, and so linguistically, we ask "is my thing null?" Not, "is nullness something that applies to my thing?" Hence "thing operation value" is arguably cognitively cheaper than "value operation thing."
So you could argue that it's one of those things that increases cognitive load if you're not used to it. That last bit is important because almost anything no matter how convoluted can become acceptable once it becomes a convention. In java I used to wonder why people did this:
if ("".equals(str)) {...
rather than if (str.equals("")) {...
until I got more familiar with NPEs. Now the former seems quite natural.http://www.theguardian.com/commentisfree/2016/jan/31/consume...
Edit to add: Some other interesting features. You can sync to Simplenote automatically, and notes can be saved as text files for easy import/export. There is some markdown support (though I see a number of bugs in the preview). The main downsides appear to be: limited color schemes, no syntax highlighting for markdown, development appears to have stalled.
Java 8 > Kotlin > Scala > Clojure
That's just my impression, especially if you're risk averse and want to make improvements as incrementally as possible. But I could be wrong. Anyone have a good counterexample? var _ = require('lodash');
in the repl.1) The problem that I've noticed with the traditional OO designs that I've worked with is that bits of similar functionality tend to get scattered about the code base. For example, the author creates a CreateReport() method in the Customer class. But if later, we have, say, an Account class (not equivalent to a Customer) that also needs a report, we find ourselves with two likely similar looking methods. I've found this to become problematic as the codebase grows, and ultimately your code exhibits a massive DRY violation.
2) His complaint about singletons is interesting but I think irrelevant. In Spring, for example, everything tends to be a singleton (the default), and stateless, so indeed, your code could be replaced by static methods. Not that this would be a good idea, although in some cases it might make sense. (The Play framework does this: http://stackoverflow.com/questions/5192904/play-framework-us...)
3) The author needs to read Yegge's http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom....
Isn't the latest common wisdom the notion that money managers actually underperform the market as a whole?
http://money.cnn.com/2015/03/12/investing/investing-active-v...
If fund managers -- whom should qualify as sophisticated investors -- aren't doing that well (or at least, can't beat a market index), why would we expect the rich generally to do any better? Is it merely the ability to reap the tax benefits of capital gains/losses?
One theory I have is that our default upstream branch isn't master, but I'm not sure where to set that in the app. Anyone else noticed this?
http://www.amazon.com/System76-Galago-UltraPro-Ubuntu-Laptop...
So, I think Apple is creating market opportunity -- a high quality linux based laptop aimed at developers that, like the Mac, doesn't require constant fiddling or kernel rebuilds to get working.
That, and occasionally we find syntax differences that cause a headache when doing a database setup/teardown. A single minor SQL difference requires us to create separate H2/Postgres flyway configurations.
I think a better option than H2 or SQLite, that we're currently investigating, is using Docker to bring up a local postgres instance for testing.
(All of that assumes a certain dedication to using Postgres. If you want to be database agnostic, then you may in fact be better off not using Postgres in dev/test just to force yourself to remain compatible with other DBs.)
Some advice to those doing take home tests: write (good) comments and include tests.
Why?
I think after a while one gets tired of using XML as a configuration language. It's verbose and not the easiest to read. Beyond that, we used to find ourselves in dependency hell with maven pretty frequently, though that hasn't happened to me in a few years.
The biggest problem, imho, is that it's inflexible. You can't just (easily) throw in a bit of functionality or make an unusual tweak to your build. So, if you can't find an existing plugin to do what you need, you have to write it yourself.
I've written a maven plugin, and the documentation/support was rather poor. I also found myself having to use an older version of various plugin libraries in order to write proper tests for the plugin. It took me a couple of weeks. Had I done all that in Gradle, I could have just thrown in a few lines of groovy and probably finished in a day.
That said, it's stable and well known. Gradle seems to have the momentum and increasing mindshare, but you probably won't get fired for using maven.
A concrete example we've faced. A certain operation requires writing data to N flaky services. You successfully write to N-1 of them, but the Nth fails. Now what do you do? If these N things were just database writes to the same DB, transactions would save you, as you could just rollback. Without that, the answer has to be handled in code -- do you reverse the previous changes (if possible) by sending delete events, or leave the system in some sort of half-baked state and rectify things later via some other process? (I'm interested in hearing of other options...)
The answers I got were:
1) apologetic computing (Amazon)
2) consensus algorithms / paxos
The problem I see is that these may be non-trivial to implement and/or not fully understood or standardized.
1) if you have an empty blank line after a query, you get a syntax error
2) an option to expand column widths to match column name would be nice.
3) Perhaps I'm not getting it, but for ad hoc sql queries, I'd prefer a free form text window a la Toad or Squirrel, where the query that the cursor is on is the current query to be executed (via key binding). I switch back and forth between queries a lot, and it's useful to be able view several of them simultaneously. The current interface is feels way too limited and clumsy, imho. Being able to go forward/back in history is nice (though I need to be able to rebind the shortcut, as ctrl-cmd-left/ctrl-cmd-right are both bound to Spectacle), but not sufficient, imho. You need to be able to view multiple queries at a time.
4) An optional 'auto-limit' is an awesome feature of squirrel that allows you to do all sorts of queries quickly without having to always type "limit 1" or whatnot. I had forgotten how much I had relied on it until I tried using this and kept accidentally getting giant result sets.
5) Another nice to have (also in Squirrel) - autocomplete.
6) If you could pull up and instasearch the query history with like cmd-P (like sublime or atom) or something that would be amazing.
7) Essential: allow user to remap/redefine keyboard shortcuts.
Keep going! If one day this is sufficient to supplant Squirrel then I'll definitely buy it.
The Simple Programmer Podcast
Javascript JabberAfter a talk at CPM 2013 (24th Annual Symposium on Combinatorial Pattern Matching, Bad Herrenalb, Germany, June 17–19, 2013), Ed McCreight answered a question on B-tree's name by Martin Farach-Colton saying: "Bayer and I were in a lunch time where we get to think a name. And we were, so, B, we were thinking… B is, you know… We were working for Boeing at the time, we couldn't use the name without talking to lawyers. So, there is a B. It has to do with balance, another B. Bayer was the senior author, who did have several years older than I am and had many more publications than I did. So there is another B. And so, at the lunch table we never did resolve whether there was one of those that made more sense than the rest. What really lives to say is: the more you think about what the B in B-trees means, the better you understand B-trees."[3]
From "Andrei Istratescu's top 10 reasons for stagnation:"
1) Too much play Playing chess - practice - is very important for improvement. When you play chess (over the board, at tournaments), you put into practice what you have learned, you use your brain to think chess, you are in the testing environment, you test your accumulated knowledge and skill against another person. However, too much play and too little study holds you back. You can repeat the same mistakes over and over. You will tend to follow your own old patterns and not have time to develop a different, correct thinking process, and to learn proper strategy and new ideas. In this case, you should take a long break from playing and concentrate only on study for several months. You will make a significant improvement.
In my experience, the first chess book I read (Logical Chess, Move by Move) probably bumped my rating by 400 points. Then, more specialized openings and tactics books another couple hundred. After that, simply playing got me mostly nowhere.
The first wave was around lightweight Java frameworks (a few of which we wrote about: Dropwizard vs. Springboot). These delivered lightweight, modern frameworks for Java and helped cut down development time. Now there’s a second wave that’s been recently hitting the scene. That wave is Java micro frameworks.
For the iMac, yes, but apparently not for the Macbook Pros. See:
http://store.apple.com/us/buy-mac/macbook-pro?product=MJLT2L...