I was in a rush on Saturday I’m staying over my girlfriends apartment for part of the weekend, and I was going to work off of my macbook air. I believe I saved all of the data, and made sure to commit my last saved updates from QT creator. Unfortunately, I did not save all of the files before committing. So, this morning, I was trying to see if the commit just didn’t sync last night, and it was not.
Needless to say, I was in a little bit of a panic, thinking I would have to delay any productivity until I synced from my home machine. BUT! I gave it a second thought. Remembering that, though I ignored the autosaves from being committed to the repository. Still think adding the autosaves to the repository was a good choice. They would’ve cluttered up the repository quickly, especially if you have 4 people working on the project at the same time. This way, the dropbox seemed like the perfect place for the autosaves. Though, I didn’t really think much about the autosaves in the first places. I did recover all the saves and realized what was going on. Since the dropbox folder was autosyncing to both machines, it was, more or less, as if I were working in the same directory. Which, in this case, turned out to be quite beneficial.
Work saved, unintentionally, but none the less, time was saved! And, I am glad I worked off of the dropbox folder, instead of two separate repositories.
Just figured this out myself. As I’m trying to get both of my machines up and running with all of the latest goodies. Git, gitHub and QT have been installed. Of course, I’m using these for the course project in one of my courses. So, I simply commit, save and move to the next machine. Qt notices the changes, and updates, and git keeps it real online.
QT of course, does a little bit of the syncing as well. Not quite sure what it is, since I still have to commit through gitHub. I’ve more or less streamlined this process. My main machine is on a treadmill desk, and then I have my mac book air, which I use for notes and coding. 64 gb doesn’t give you room for much else. So, working with what I’ve got, and dropbox/git are making it a little easier.
Personally, I prefer the gitHub software for the mac, it’s more intuitive. Though, once you realize what’s going on with the windows version, not too bad. Had a little issue syncing at first… then I realized it’s not just about putting commands on the terminal. Seems faster than clicking, but I think I’ll stick to the app for the quick updates. Loving version control so far!
This past Tuesday we had a developer from Google come to our school and give us a talk about working at google, and some practices. Along with a few pointers to tools that could be useful. This speaker was so much better than the last, IMO. Then again, the material covered by the other person was denser; Operating systems. I’m going to post my notes, and a do a little bit of research on the tools and tips given to us.
Alright, he started with an introduction, and his name, though, I will probably leave that out, incase he accidentally said something they shouldn’t. Which, for the most part, I doubt. He did stop himself mid sentence once. So, guessing their secrets are safe. 😛
He mentioned something called BOOST, while he was talking about version control. Now that I’ve started using git, I’m probably going to become an addict. So, what’s boost? I don’t know, but he kept talking about it, so I just googled it, ha.
Boost provides free peer-reviewed portable C++ source libraries
I would book mark it and read it later, then do some sort of overview of it, but I know that book marks are were intentions go to die. Hence, I will read over it a bit now and see what’s up. Based on their site, I am very sure it has everything to do with C++ libraries. Also saw something about python, so they might be doing a variety of languages. Boost itself, is a set of libraries that lets you do cool stuff. Not gonna go into too much detail, since this was one of a number of things covered in the seminar. And, I will most likely not use it anytime soon, at least not for academic purposes, since there is a standard to maintain. It does look like something I could use on a side project then.
He mentioned fancy things like using various versions of the same code. And how that is hard to monitor. A snippet about frameworks. And, why does wordpress keep changing every time type something!!! If.. I wanted to look at other sites… while.. I was typing a post… I think I would just completely not do a post… That’s just annoying, and distracting… give it to me when I’m done, thank you.
Back to the notes. He discussed building from head, and how great it was. There was only one source tree. Which he said was “by far the simplest solution” to how to store and edit code.
-Faster bug fixes
-Constant code churn: a “real bad situation” since it takes a long time to build, and each build is a compilation.
-Changing APIs may affect the world: If you change an API, then you’re changing it globally! And the code is seen by everyone in Google! Careful!
One of the niftier things he said was how everyone was encouraged to edit anyone else’s code. So, if you find a bug in someone’s code, you can edit it. Then tell the group you edited it and send it for review. I believe he mentioned a few more steps that you realistically needed to take later in the talk.
He did mention a strict styles guide… which was probably evident, given the company and the amount of code they deal with. And I believe they are available online, let me take a look. Yeap, there are a number of styles guides available from google. I knew they had a C++ one, and now I found them all: Google Style Guides!
Map reduce seemed pretty interesting as well. Apparently it’s a method of compiling large amounts of data in a very fast amount of time. It seems a lot like something in F#. When you map something to a function, or filter. Though, he didn’t go into many specifics. Just praised how great it works.
ClangFormat was another one of those nifty tools available to the normal people. It’s apparently a tool that help, or completely formats your code. I can see this coming in handy when dealing with huge amounts of code! Apparently made for the C language families; no support for the black sheep though.
I’ll finish it up with their version control, since this post is already longer than I’d like it to be. Then I’ll start up another section with Google’s famed 20% time.
He mentions how the general belief that google has a distributed means of version control and that is not the case. They use a centralized means of version control; probably why all Googleites have the ability to edit code directly, and why they need to be reviewed by the owners. So, how do the developers get that centralized code to their machines? 2 ways, from what I gathered. A client in the Cloud~. The code is 100% available in the cloud… a form of code heaven… 😛 And the second means of getting access to that code is! A locally distributed version.
So, the person has a form of git, or version control, that is their personalish version control, along with the Cloud. They can experiment with code, and play with it, without actually committing it to the Cloud~. I’m guessing they’re issued their personal repository, along with one of the many glorious tools he hinted at during his talks… he had a little glint of joy in his eyes, I was just waiting for him to start giggling at the mention of his Google GI developer tools. So! This centralized version control, it’s pretty nice. This is what makes the Google wide changes so easy. He did say something about Google3… not 100% sure, but it seems to be the root of all Google code… looking at my notes, not sure if he said that, I suspected it, or it’s a diversionary tactic to lure people to or away from their secrets.
That’s it for now, I’m about half way through the notes, and the rest may be trivial, so either another long post, or a short post in the near future.
Simple enough, I believe. I started off with git, from their site. LINK
That installed without a hitch, very easy instructions. And then I installed the github program (also for windows). Since I’m learning more about a variety of programming languages, and have started using F# and C#, now learning about SQLite I’d get full use of both machines. I’ve been programming, mainly on my Macbook Air; using mono. Mainly since it was easy to use SSh, command line compilation, and everything is a general one place shop for developing. Though, gdb seems to be a problem now on OS X 10.8.
Another incentive for installing on both machines. I see a lot of job applications, or internship applications saying that they are looking for people with experience in .NET and mono is the same, from what I can tell. I would suggest both being used, for anyone learning. Especially since you don’t really know what hardware or software you’ll be working on, for the most part. Be ready for anything.
Really hoping the Maverick OS brings something decent into the mix. Might wait a little bit, at least until they get those initial bugs fixed. I’m sure there will be some…
Wow, just had a talk from a google engineer. Says he loves working there, and their constant upgrading and infrastructure investments keep things fresh!! Ahh, will post notes on the talk, and do a little research on the resources he was mentioning.
Google spent nearly $2.29 billion on data centers, servers and other infrastructure during its fiscal third quarter, the company reported as part of its earnings statement on Thursday. That’s up from $1.6 billion last quarter and $872 million in the third quarter of 2012.
There’s really not much to say that hasn’t been said before: investing in servers, data centers, fiber optic cables, wind farms and whatever it takes to run a mobile-device business costs money. What’s amazing in an era of doing business in the name of quarterly profits is that Google is willing to spend significantly more every quarter on investing for its future. Analysts and investors might not like it now, but they will in the end.
Take a look at just how much the company has picked up its spending in just the past several quarters.