I have had do to this on and off for a long time. The easiest and possibly cheapest is just using a PC with Windows. I usually just reproduce on prod and then debug locally, which means firing up the server on mac or linux and I have a host name setup on my PC. This way you can fiddle with the code, test it locally and use IE. I have never really been satisfied with the VM approach. It is free as in it doesn’t cost money, but it will cost you in time. Also just follow a deals site, PCs can be had <$500 for a pretty decent box too.
Buying the PC is only a small part of having Windows around, just like buying a horse is only a small part of keeping one. Windows needs a lot of maintenance, especially when you don’t use it daily. Start a Windows machine after a week of inactivity and you’re likely to see it grind to a halt during updates, some of which won’t install, others which will change your configuration in unsuspected ways. You’ll have to remove Candy Crush from the start menu again - and again - and again.
You made that sound way harder and unpredictable than it was for me. I just started it up and checked for updates as part of morning routine. Took a few minutes. Updates happened while I was making coffee or something else.
I agree. Updates have mostly been a non-issue for me, and they certainly haven’t changed any of my settings thus far.
I don’t feel that writing is on-topic for lobste.rs.
Fiction writing, no. Technical writing, I would argue, yes. Maybe I’m off the mark, though.
What would distinguish “technical writing”?
API documentation, tutorials, contributor guides, new product announcements, product upgrade announcements…
Right. The large amount of natural-language writing that we end up having to do in this job.
I feel like the opposite question is equally valid. Why do you use git over mercurial?
Here’s my perspective. I think the adoption of git skyrocketed with github. I know that some hardcore devs have been using an SCM for a while, but the average web dev was largely just copying files locally and uploading files up to their servers via FTP. SVN was around and I had used it a bit, but branches were a pain, and I remember the tooling wasn’t great at the time either. When github came along and was a really slick collaboration platform that happened to use git exclusively, all of my peers just picked up git because github was so good.
I never have used mercurial, but I think regardless of the benefits of mercurial, it just didn’t have a shot at the same popularity because there wasn’t a platform that really changed the way people collaborate like github. I would guess that if a platform like github was built around mercurial at the same time, it may have had the same level of adoption.
I know that the github folks were really into the benefits of git at the time, but I believe the magic was in the platform not the SCM.
Long answer short, I don’t use mercurial because none of the companies I have worked for ever have, and on my personal stuff I just use git because I know it.
When github came along and was a really slick collaboration platform that happened to use git exclusively, all of my peers just picked up git because github was so good.
That’s one of the most interesting points about the popularity of git - it’s used by many people who would never have thought of using an SCM before, from web developers to ops people. Even stranger, to me, is that for all its power git has a worse UX than what was there before - CVS, Subversion, even RCS, are all relatively quick to learn and easy to use. git isn’t either of those (and I say that someone who likes it, for certain values of “like”), yet it’s seen huge adoption. This is due in no small part to Github, for sure.
IMHO, the influence of git on software development cannot be understated - I think it’s made SCM something every developer needs to know and master, rather than a set of niche concepts. And that’s a Good Thing.
It probably also helped that some of the people involved early on with Github promoted Git heavily, going to such lengths as the “why Git is better than X” stuff and the actual git-scm.com website. Previously, you had to go to some part of the Linux kernel website to learn more about Git.
I feel like the opposite question is equally valid.
I don’t. Mercurial is so tiny compared to git that it needs justification. You don’t need to justify git, since it’s just the default. Everyone uses git, there’s tons of things built on top of git, and git is just the way things are. There’s no reason to convince anyone to use git instead of using hg, since they are way, way more likely to already be using git instead of hg.
It’s not like we have to tell GNU/Linux users that they really should be using Windows/macOS or tell BSD users that GNU/Linux is what they really should be using. The minority users are almost certainly already aware of the advantages of the majority software but decided to stay with the minority software regardless. It’s only the other direction that really requires a defense.
You don’t need to justify git, since it’s just the default.
Is this the default mode of thought around here? New to the site, just curious.
I just meant to say, the Glory of Git is a very well-known song. Give us a chance to sing the Harmony of Hg.
You don’t need to justify git, since it’s just the default
I think you always need to justify the default. If you can’t justify the default then you’re literally just cargo culting without actually evaluating the tool or its alternatives.
But following that argument, there are almost certainly people who use mercurial because it’s the default where they work, and where they first worked, and have never felt the need to use git, or tried it and didn’t like it because it was mildly different from what their default was.
Sure, you have a point. In my case I use git because most other people I have worked with use git. jordiGH said a few months ago that “the userbase is dwindling, but the development, if anything, is speeding up”, so being proficient with git is a must for me since I am a freelancer. I need to know how to use tools my clients use, even if I don’t love them.
In 2006 or 2007 I moved from SVN to mercurial and I really liked it. However, almost no client or job I could find used mercurial, so I had to learn git. In addition to that, the boom of github made me stay comfortable with git. Nowadays, being picky about tools I am checking if other devs that have a similar mindset to mine are using mercurial instead of git.
While the tool seems like a handy one, it does sadden me that in this day and age the installation method is curl | sh.
curl | sh
Agree 100%. I don’t know how that dire mechanism of installation became “a thing”. FFS, it’s everywhere and it annoys the hell out of me. I guess people can argue that it’s the same as make install as root (which I also dislike), but at least we’ve moved on in that realm, to binary package managers.
What would you prefer?
A traditional tarball for a start? And for those that use it, the ability to install it using their package manager of choice (I see Homebrew support is on the way).
A traditional tarball for a start?
Are you just saying you prefer to untar > ./configure > make > make install route? I don’t really understand the benefit of a “traditional tarball” other than if it had an MD5 to go with it to verify package contents.
And for those that use it, the ability to install it using their package manager of choice (I see Homebrew support is on the way).
Yeah, I definitely prefer a package manager to curl # | sh
curl # | sh
Most anything that’s not curl|sh really…for homebrew users there’s hope though.
I have worked a better part of my career remotely doing dev work. Although I am consulting now I still remotely attend all standups and all-hands meetings via hangouts. Video software has come a long way over the years, and although hangouts still can get wonky on long calls I think it is more or less the best option between accessibility and ease of use. For all other comms it is basically Slack.
I disagree with the idea that someone is more likely to share relevant info face to face, I think that depends on the person and how much previous experience they have. Also the size of the meeting, a one on one in hangouts can be pretty good. One thing to help with the candidness is telling the other person what the setting is and who is around. Not that you need to tell secrets it just helps both sides feel more comfortable. Also I would always encourage everyone to attend the remote meetings with video, it feels a lot better in my opinion.
The reality is that remote will never be on par with in-person in terms of that in-person close feeling. I don’t think any of the gimmicks make it feel that way either.
I disagree with the idea that someone is more likely to share relevant info face to face
Can you have a chat with my bosses? </humor> I’m trying real hard to fight for more remote time, especially because when you’re working remotely, people are more mindful of whether or not they’re disturbing you. I find it implicitly more respectful. Also, I like my things in writing preferably. Something about the faintest of ink vs memory.
Why doesn’t your boss want you to work remotely? Just curious.
I moved across country and requested to continue working remotely in my
previous job, but my boss said it was impossible because I would “miss
our stand-up”. I suggested doing a video one, but he wasn’t interested.
So I left.
<parody>Using faces to communicate information is the best and only way to communicate information, therefore, while it’s tolerated to work from home, doing it is frowned upon</parody>
I don’t think this was intended as a broad generalization, but rather a problem he noticed in his own situation.
That said, I’ve been on fully-distributed teams and teams with mixed remote/local, and I’ve never really felt like the mixed style worked at all as a team. Even if other in-office teammates are on board with having a remote member, if they’re not remote themselves, they’re not going to help take the necessary steps to run a distributed team, because it is more work.
Good point, I this is true for my response as well.
That said, I’ve been on fully-distributed teams and teams with mixed remote/local, and I’ve never really felt like the mixed style worked at all as a team.
I have also experienced mixed vs all local vs all remote. I definitely agree with when it is mixed you sort of feel left out. I almost feel like the decision needs to be made if the company is going to be all local or distributed, and when it is accepted as a distributed team that culture is created, even the locals should have the option to work remotely as they please.
trying to grasp functional programming after doing imperative for ~4 years, also learning haskell so i can do cool things with xmonad
I looked at Real World Ocaml on Amazon after seeing your list, and found ‘OCaml from the Very Beginning’ as a place to start in the reviews. It’s been really great so far. Not sure where you are at with Real World, but if you are looking for something more basic, I’d recommend it.
I really enjoy Land of Lisp. There’s an on-going GSoC project to revive CLisp. I hope it succeeds.
I use SBCL nowadays as CLISP has segfaulted on me many times. Exciting.
I signed up for the preview months ago. Has anyone gotten an invite yet?
The form makes it look more like an application with the whole “why should we choose you?” bit, so I was kind of turned off and didn’t ‘apply’ to be a beta tester.
Reading the bios and the form I got a similar feeling that this is some sort of ‘product’ we are signing up for. I am perfectly fine with it being a commercial endeavor but it the whole *-lang.org makes it feel like it is another open source project and then they have the polished startup-y landing page. I never understand the shroud of secrecy around not just telling people what you are actually making and what it will cost.
Why is FreeBSD so popular as the base OS for appliances? What makes it more attractive than other BSDs or, say, RHEL?
I would think the license.
I don’t know why, but I have always had the impression that FreeBSD was the most modern of the BSD systems. I feel like it has the most people working on it, would be the BSD most likely to support all of my hardware and would have the most up to date packages of all the BSDs.
I’m not really sure where I got that impression, but if other people also have that impression, it would explain why it’s popular for things like this.
I once used PC-BSD and, as a dumb desktop user, it felt nearly indistinguishable from GNU/Linux. All the hardware worked and just about the same programs I was used to were there.
This matches my experience. I’ve used OpenBSD and FreeBSD. The ports collection in FreeBSD is bigger and the community is bigger.
A focus on network performance?
Which kinds of appliances do you have in mind? In consumer-level stuff, at least, I think everything I’ve run into runs one or another kind of Linux. I haven’t done any kind of real survey, but the various wifi routers, set-top boxes, etc. I’ve owned seem to all be Linux varieties.
Some appliances that are FreeBSD based:
There’s a reasonable list on Wikipedia.
Apple AirPort Wi-Fi base stations have been based on NetBSD for quite a while (not sure if iOS has taken over yet or not).
OS X and iOS are based on some FreeBSD subsystems and APIs.
The PlayStation 4 reportedly runs Sony’s fork of FreeBSD, at least. I don’t know about other set-top boxes.
On a related note, I have some invites. Let me know if you have an interest in trying it out.
This talk was at EmberConf on Wednesday. I really enjoyed the talk because of the high energy and genuine interest cmeiklejohn had. As someone who knows very little about the topic, it helped a ton that he was able to provide a simplified explanation following the complicated math language. I would look for the videos to go up on confreaks soon, and watch it. This is one of those talks where the slides were mostly a subject (I did love the type design), and he would dive into that subject verbally.
Interesting point, although I think the “off-topic” down-votes I assume are because startup acquisitions announcements aren’t something that those users thought are appropriate in general here. I wasn’t said down-voter so I can’t say for sure.
This looks interesting, although one thing that may be relevant to note is that it is written in context of a dev living in the UK. Looks like the business entities chapters are specific to that area. I also think that some of the content may be more relevant for developers in the UK and possibly Europe more than the US. Not that the content isn’t general enough I just think there is cultural business, billing, and probably a handful of other practices that may be a bit less relevant for US readers.
That said, I think the post is perfectly appropriate, it may be helpful for some to note the geography in which you are practicing business, UK, global or otherwise.
Hi bobbywilson – thanks for the vote of support. I didn’t want to be spamming lobste.rs
You’re right, some bits are definitely UK-specific, but they’re also the parts which can be easily ‘localised’ by contacting a tax office, accountant or govt biz support department wherever you are. There’s still heaps in the book that’s about making freelance work for you wherever you are.
I had planned to refactor the UK specific stuff into an appendix, based on feedback from readers (730+ at the mo), but people aren’t currently asking for that, so it’s been moved down the backlog.
To be honest I don’t love the font, I actually use and love the font he cited as his previous programming font Inconsolata. I am not a type snob but I was looking at the Python and C examples and found the “t”, “f”, and “j” spacing kind of funky, and I don’t like that the one sided cross bars.
I don’t really feel like this post belongs on Lobsters. To be frank, there is literally a tweet’s worth of information here. I assume the upvotes are for supporting you, which by all means, I do as well, but I come to Lobsters for deep geeky topics. If this article was in fact, about Haskell, or the techniques you use to stay focused, or how you learn I could definitely get behind it.
I don’t mean to badger you personally about this blog post, I want just to state in general that this is not the kind of content I look for here. When I saw that it had 8 votes, I thought, wow, this must be something really worth a read. After reading the post I thought this person must have sent the link to his friends to upvote it for him. I see this pattern all the time on HN, and I am sorely disappointed to see it on Lobsters.
I am just another user, so take this with a grain of salt, but I hate to see Lobsters go the way of HN or reddit this early. Don’t let me discourage you from posting though, I think journals about interesting Haskell tidbits are perfect for posting here.
Sorry, didn’t mean to be spammy. Downvote if it seems inappropriate. Maybe you’ll like today’s deep geeky topic of using existential types to simulate dynamic typing.