I've been working with linux for the last year or so, and I have to say, I'm stunned at how poor the documentation for many applications is. I'm not a windows fan boy or anything (although I have a lot of windows experience and relatively little linux experience), but before I started getting into linux, I remember reading all the time about how things in linux are so well documented. But I'm finding that well documented really means "there is documentation". I think the Linux and Windows worlds are about the same when it comes to documentation.
Yeah, the documentation in both worlds is about the same. Or at least that's the way it's been so far. For every application and technology, there is documentation, and sometimes it's very clear, very thorough, and up-to-date, and sometimes it's ambiguous, sparse, and outdated. And of course, for some things, there just plain ain't no documentation to be found.
I guess it might be a little easier to understand for linux, because everything's open source, and a lot of times, the documentation is too. Plus you don't have to pay to get the software. But while that might explain things, it doesn't make them any better.
Maybe no one really sees the need for better documentation, but as Malcolm and I were discussing earlier today, good documentation is probably one of the key reasons Java is so popular.
We should probably say that linux has at least a little bit of an edge on windows in terms of documentation because you can read the source code if you want.
Anyway, documentation for stuff sucks - I hope it gets better. (Startup idea?)
If you're getting the error saying something like "there are currently no logon servers available to service the logon request", here's a potential solution. Logon to the machine with a different user, connect to the VPN, and use the runas command to ping a machine as the user that cannot log in.
I was trying to add a machine to the domain. Also, I was doing this remotely over the internet. I was at the machine, and I added the machine to the domain while I was connected to the VPN. Adding the machine worked, but when I tried to log in with my domain account, that's when I hit this problem.
Now, I vaguely understand what caused this. I was trying to log into Windows, and therefore I was not logged in as any user, and so I was also not connected to the VPN - so there's no way the machine could contact the work machines to request a logon with a domain user account. I needed to do the logon request while connected to the VPN.
So runas logs the user on, and runs the specified command, and of course, it's purpose is to let you run commands as other users. Thus, runas /user:uname@domain "ping somemachine", logs uname into domain and then runs the ping command. If you are able to execute that command, the user will be able to log into the machine, even if you're offline.
You might be wondering why that works. I don't know exactly, but I think the way Windows works is: it caches some information on the local machine that lets the domain user log in for a while without contacting the logon server. I don't know how long the cached info lasts, but I think it lasts for a few weeks by default. And I'm sure there's some way to configure that in Active Directory.
PS - I got these results on Windows 7 (x64) hitting a Server 2008 based Active Directory. Not too sure the AD settings, but as anyone familiar with AD knows, there's a ton of settings that effect stuff like this.
If you can't get the wireless to turn on, and airplane mode seems to be stuck in the 'on' mode, check the wireless key (or button or switch) on your machine. I have one that you can't tell if it's on or off, and it was off, which explains why I could not connect (Dell Inspiron N4010).
On the wireless drop-down panel, it said wireless was off and no networks appeared. I turned it on, but it didn't go on.
I opened the wireless network settings and tried to turn it on, but it wouldn't go on. I noticed Airplane Mode was on, so I turned it off. It looked like it went off, but the wifi still wouldn't go on. I closed the window and opened it again, and the airplane mode was back on.
I finally thought to check the wifi button on my laptop. I don't have a light that indicates if the wifi card is enabled/disabled, so I can't tell. I pressed the key, and then the wireless turned on automatically.
Ok, I'm pretty new to rooting, and I did it because I just got an iPad but I don't want to get another data plan, but I've tried these two tethering apps, and I've found that OpenGarden works on myTouch 3G rooted with ginger yoshi 1.5 (32b), but Barnacle didn't work for me. To be fair, rooting is all hackery. There's a lot of variables involved and there's different stuff to do on each device, so just because Barnacle didn't work on this particular device doesn't mean it's bad software; from what I've seen, it's quite popular. It's also possible I just didn't configure it properly, but of course, I can't find very good documentation on any of these apps, so maybe that's not all my fault.
Anyway – OpenGarden. At first neither my iPad nor my fedora 16 linux laptop connect, but both could see the SSID. I changed the encryption mode from Auto to wpa_suplicant, and that seems to work. On the fedora box, I had to restart the wireless for whatever reason. Why wpa_suplicant? No idea. When I first tried OpenGarden, I got an error saying something about failed to activate wpa_supplicant, so I switched to that, but I still got that error. But I figured I'd give it a shot with the new setting anyway, and it worked.
Barnacle. I tried Barnacle first. It seemed to work fine when I first tried it at home, but I didn't really test it much, just hit google and called it good. Then I was here at work, and the wifi was down, so I fired it up. It seemed to be working at first, but for some reason, the linux box would reconnect as an unknown client (name says "[none]"). Anyway, it still seemed to work, but then after a bit, the phone would reboot and the networking got messed up, so I would have to reset it. I think the phone was only rebooting after I actually went and checked my text messages, but I don't really know what caused it. Like I said, maybe I didn't configure it right, but I don't know what anything in there does, and it should definitely not reboot the phone, so I tried OpenGarden.
Well – I hope this helps someone. If you have any more info please do post, but if you have questions, I probably won't be of much help because I'm not too familiar with rooting and android hackery.
Ok, here's my pitch on why working here is awesome, because I know you're dying to know. Seriously though, it's a good place to work.
Always Training, Always Improving
The main thing that has kept me here is the continuous education and the challenging work. I've been learning new technologies, and developing new skills ever since day 1. I started out as an intern years ago, and just to give you an idea of some of the highlights, I've developed an HTML parser, a printing system, an entire SharePoint reporting solution, and a backend data and payment system. And of course, I've worked on a whole slew of other things across the board, developing not only my software skills, but also my business and communication skills.
Another awesome thing about working here is the completely flexible work hours. You just have to show up to the meetings, put in your fair share of time, and deliver.
Good, Smart People
Also, there's no office politics or drama here. Everyone's cool and hard-working, and we're always working to do the best we can rather than achieve some ulterior motive.
People listen to what you have to say, whether you're the CEO or an intern, whether you're a developer or a sales person or a marketing person. Again, we're just trying to be smart and do our best, and that means listening to people's ideas and concerns.
And then there's the fun stuff. We get fresh donuts, Monday mornings, have company lunches twice a month, free soda and snacks, and we do these fun social events from time to time. Like we just had our winter holdiay party last month (we all got iPads!). And then there was this time we went out and had a big picnic at the park, and just hung out and played volley ball.
And one thing that's been really cool for me is that if you want to do some project that you think will be helpful, it's no big deal, you just do it. Actually, we're always encourging people to try new things and think outside the box. We have these Get Out Of Jail Free cards, and the idea is you can do some wild idea, and if it doesn't work out, you can just trade in your Get Out Of Jail Free card.
One cool project I did was a SharePoint list adapter, which was basically making it easier to access the data and hook it into our system. And what's really cool about that is that it really took off and became a greatly demanded part of our SharePoint solution.
We also have this Friday project thing, so you can dedicate Friday afternoons to a different project of your choosing, provided it's remotely interesting to the company, and it's a plus if it helps you develop personally. It's fun because you can do a lot of different things, even if it's not your area of expertise. People have made videos, done blog series, made new apps, and some other things.
I also like the fact that the company hosts blogs for everyone and encourages the whole social media thing. It's a nice outlet, and I think it sort of gives a way to give back sometimes because you can share what you've learned.
So that's it from my perspective. If you have any questions, feel free to post it in the comments.
If you follow my blog, then you know I've been quiet for a while. Well, I've been deep in the code dungeon, toiling away – but now I return with treasure! An awesome new feature, just for you – Native Charts. This lets you carry a regular old chart from Word, Excel, or PowerPoint out to your report. You get a perfect replica on output to Word, Excel, or PowerPoint, but we also carry them out to PDF and HTML – awesome. We're releasing this with version 11, which is coming out very soon. Here's a quick example.
Below I have a regular old report made with AutoTag, and I have the DOCX output version, and the PDF output version. This is a phone bill, and normally you just have all the ugly details, but this month the phone company decides to add a chart to it. It's the same for everyone, and it's just a couple of data points, so they just plop it right into the Word template. Run it through Windward, and voila! Adorable charts for everyone (for a small fee)!
This is cool for those of you that need these kind of charts, but it's also a precursor to something even more awesome – Interactive Charts!!! Stay tuned…
Trying to install the driver and you can't see your device listed?
I just tried installing the Google USB Driver for Windows 7. When I got to the step about selecting the device in the device manager, I saw that my phone wasn't listed. I tried disconnecting and reconnecting the USB cable to no avail. Then I noticed Windows was notifying me that the device driver didn't install correctly. I disconnected the phone, shut it off, turned it back on, and then connected it once it was fully booted. Voi-la! Success!
However, I didn't actually have to do anything after that. Windows said the driver was already installed. And my Android device disappeared from the Other Devices list, and instead appeared under a Portable Devices list as F:\. So I went to the <sdk>\platform-tools directory and ran "adb devices" which listed the device. It was some weird ID number like SH97BP401359.
This was a total PITA for me, so here's what I found after a bit of playing around with the UI.
I'm using GNOME 3 (the sexy new tablet friendly interface). I didn't see a place in the network connection drop-down to connect to a hidden wireless network, so I clicked on network settings.
You see three options on the left, Wired, Wireless, and Network Proxy. I clicked Wireless, but everything appeared to be disabled. It's not! Click the Network Name drop-down and select other. This takes you to the interface that let's you easily setup a connection to a hidden wireless network.
Yay! Now you can go to Facebook and complain about this.
I couldn't figure this out for a while. Instead, I went to network connections and tried to setup a connection manually. I had everything except for the MAC address of the access point. You need that, and the easy interface will give it to you. The old, less wise version of me didn't know that.
We had our first code war at Windward this Friday, which I am dubbing Windward Code War One! It's a battle to see who can write the best solution to a problem in a relatively short period of time. My team, Nuclear Pony, lost horribly. So let me share my thoughts with you about this, and feel free to give me your own. If you want the code (original and final), hit the link above.
For this challenge, we had to write AIs to play in the strategy boardgame, Broadside. Basically, you get a set of ships; each one has a certain number of sails, and when it gets hit, you lose a sail. You get hit when a boat moves into the square adjacent to yours with their broadside facing your ship. In addition to that, you also have islands in the water, and surrounding land where you can place a couple of batteries (cannons) that will hit any opponent that passes the square in front of them.
I thought a lot about why we failed so badly. Our AI's moves were all considered invalid, except for our first two setup-moves; and so aside from the small edge we got from those, we had nothing, and experienced complete devistation. I could say a lot about what happened, but I think it ultimately ties to one simple lesson.
Test Early, Test Often
Basically, we over-spent on planning. We developed a truly fearsome strategy before we even started coding. But this cut out some much needed debugging time which left us with failing software. We should have written some code earlier, so that we could find the hang-ups earlier, and have more time to figure them out. In this case, I'm quite sure we would have hit our major hang-ups right away, and if we did, we would have been able to make a couple minor changes in implementation that would have corrected the invalid moves problem (take a look at the final code if you want to see if you agree with me). Even if our strategy had not been as great as I think it was, we would have been a lot happier to see it performing as we had intended.
In My Element
While I was truly disappointed in my own performance - and quite embarrassed, I admit - I absolutely had a blast! Time flying. Lost in the moment. Hacking with hardly a thought of anything else (leaving me quite thirsty after the event was over). This is my utopia!
I hope you found this insightful and/or inspiring, but in any case, happy coding!