I’ve been working on a new Mac app for a month or so and it feels good to be building a product of my own again. I figured I’d blog the experience and hence, the new blog: Rested Experience.
Feedback and retweets very welcome. Thanks!
I’ve been working on a new Mac app for a month or so and it feels good to be building a product of my own again. I figured I’d blog the experience and hence, the new blog: Rested Experience.
Feedback and retweets very welcome. Thanks!
Final Parts List: http://pcpartpicker.com/list/4Wjcf8
I’m a fairly serious/casual gamer (as in serious love of many games, casual in that I can only play so many hours a week because of other life responsibilities). I play a lot of 3DS (Pokemon, Zelda) and I also own a Wii U, a PS4 and lots of other older/retro consoles.
I’ve been considering a gaming PC for a while. My main drive has been to support a mix of playing World of Warcraft and Final Fantasy 14. I’ve been playing both on my 2011-era iMac (Bootcamp-ing into Windows for FF14) but the graphics performance of the old machine was starting to become a real limiting factor. Additionally was the interest in playing some PC-only (or PC preferred) games, like Overwatch and Stardew Valley.
A few months ago I started assembling a parts list and talking to some other friends. Part of me just wanted to buy a pre-built system but for better or worse my geeky friends assured me the assembly wouldn’t be that bad and it would let me save some money or buy some better components.
My initial target was to spend about $1500 and go for a upper mid-tier machine. I wasn’t interested in VR right now and just wanted something to play games. After getting acquainted with the video cards and performance I choose the GTX 970. I had a full parts list waiting to go but I didn’t pull the trigger. This was around April and I was still traveling a bit. I was also working towards paying off my student loans and decided I’d do that first.
When I came back to my parts list at the end of May there was the announcement of the new GTX 1080 and 1070. These new cards were destroying the performance charts and I started to get a little greedy. I kept up with the release, and noticing the 1080 was selling out joined an alert website to let me know where and when it became available. I eventually grabbed a Founder’s Edition directly from Nvidia. I will concede the upcoming non-Founder’s Edition cards are probably better cooled and cheaper but I was anxious to play and didn’t want to wait until end of June / July to get my hands on this thing. I splurged.
I came back and cleaned up my final parts list. I ordered the rest of the machine from NewEgg with a few pieces from Amazon. (Even if a bit more I’d prefer to buy from NewEgg and Amazon who are very easy to work with regarding returns and such.)
One item I was not planning to buy but did, was a new monitor. I was really hoping to get dual use out of my Apple Thunderbolt monitor (which I use with my iMac to extend my display) but as I did research it would seem hooking that up to a display port was not going to work out. I ended up buying a Dell Gaming S2716DG 27-inch monitor to make it work, and it does. I just am not enjoying using it with my iMac as much as my other Apple monitor since the colors aren’t matching like they used to.
After ordering the parts a week before, I sat at home Friday night and got started with the assembly. I took my time. I read the motherboard and other manuals as I slowly connected it all together.
Some things gave me trouble. It took a few attempts to get the motherboard mounted in the case. In general there was always a scary feeling of putting too much pressure on a part to get it to fit in. The case came with a ton of different screws and I had to take a lot of time to make sure I was using the right pair for the job.
I worked on Friday from 8pm till about midnight and then Saturday morning 9am until lunch to finish the assembly. Much longer than a seasoned PC gamer I’m sure — but keep in mind this was my first build since college and even then I had a lot of help from my roommate. Once assembled I was lucky in that it powered on into the BIOS right away.
Despite some known gaming headaches, I decided you use Windows 10. It installed fairly quickly. During initial setup I did opt-out of a lot of personalization features that do not interest me. My next challenge, getting the network card working.
My gaming PC is not near my cable modem so I need wireless connectivity and surprisingly this is not on the motherboard — I needed a seperate PCI card. The card I bought seemed to use PCI for the housing but also plugged into the USB on the motherboard. After spending some time downloading the latest drivers and playing the format game with some USB sticks I eventally installed the software but the card would not start up. It took some searching but I eventually found out I had to disable XHCI Handoff to enable the third USB connection on my motherboard which is what I was using to connect the wireless card. With all of that figured out, I had network access on my computer and began downloading some system updates and then some games.
I’m sure I’ll buy some more in time (and would greatly love your recommendations, email me) but for now the primary PC games for me are:
I have mixed feeling about the time I spent doing the build. It does feel empowering to refresh my memory of how to do it all — but that said it’s not something I get a ton of enjoyment out of so let’s hope this box keeps ticking without too much maintenance in the years ahead. And while I do carry a little guilt about going for the super high end video card I also look forward to for the next few years being able to turn on ULTRA options without losing frames.
Lots of WWDC predictions out there this week. Here’s a dream of mine. Sadly one that I’ve given up on, at least from Apple.
One of the many interesting benefits I get working for Big Nerd Ranch is the opportunity to participate in many fun and unique events. One of the bigger ones is called Clash of the Coders.
Clash of the Coders is an annual coding competition, whereby Big Nerd Ranch effectively “shuts down” for a a few days to allow developers to flex their coding muscles in to build something (anything) that is both wizardly and useful.
This years edition of “Clash” starts at 6pm tonight, Wednesday March 30th. While people are encouraged to brainstorm ideas and form teams ahead of time, no code shall be written until the event starts.
During the event we are treated to full time catering, shoulder and neck massages as well as other free-form geek activities. (I hear Christian will have his new Oculus Rift around for testing.)
While remote nerds can choose to stay remote and participate, anyone who wants to come into the office can. Last year I was at home and didn’t really get into it. This year I’m working out of the office so I’m anxious to see how it all works out.
As for my project and team, I’m still working on it. I have an idea and if need be will work on it solo but am also hosting a meeting after lunch for ‘Clash Singles’ to see if we can form some last minute teams.
At the end of Clash (Saturday, 6pm) we have a nice BBQ dinner (spouses and kids welcome) and we run a science fair of sorts, where people demo their work and answer questions. People are judged on project complexity, presentation and other factors. Bonus points are awarded if your team was interdisciplinary (mixing people of different departments) and if you were able to integrate any of the emerging technologies on our watch list. Top prize allows you to choose from list of high end geeky toys (think drones and musical instruments) with second/third prizes getting some nice Amazon gift cards.
I’ll post more as Clash gets going. If you have any questions let me know.
This first thing I’ll note is we do not record the entire meeting. Early on this was to due to the experimental nature of our recording setup but more recently, at a leadership meeting, we made the call to continue to only record our “main talks”. We do this for a few reasons:
Starting from the presenter’s laptop we provide an HDMI cable. If they want to present or demo from an iOS device we have an HDMI to Lightning adaptor.
The HDMI cable then feeds into our capture device, an Elgato Game Capture HD. This device is targeted at the streaming game market but is just as viable to capture normal HDMI signals. The device itself is an HDMI passthrough with no frame drops or anything. The device is even powered through the USB cable so no need for a power cord. The video / audio is then compress into mp4 (on device using hardware encoding). The compressed signal is sent to a Macintosh running some custom Elgato software. I use an older Macbook Air to act as our dedicated capture computer. While there are many other features for dedicated streamers, we simply press record.
We then take the other end of the HDMI cable and route it to our projection system. Now the Apple Store that hosts us has a very impressive setup but sadly it’s not as easy as it should be. They have an HDMI connection, and while it works for the Apple TV it doesn’t register when we plug it into a Mac. To get around this we used to use an HDMI to DVI adaptor and the alternate DVI input. It worked fine but doing it this way lost the audio. Recently we’ve fixed this by buying a converter box that splits the HDMI into both DVI and an audio jack. Again, the Apple Store does have a in-house roof speaker system but for us sadly it’s been down. In the interim we’ve been getting by with a Beats Pill Speaker the Apple Store is nice enough to provide.
While not part of the capture, I will give a friendly nod to Fin, an iOS performance timer we run on an iPad mini to help the speakers know how much time they have left. Works great.
I’ll also recommend the presenter remote I use. It’s a Kensington, with a nice simple to use USB dongle that slips into the remote when not in use. It has a laser pointer too but I can’t say I use it much. Battery life has been very good for this device.
So that captures the video and audio from the presenter’s laptop or device but what about the speaker’s voice? For that we use a lapel clip on mic and Digital Audio Recorder. The recorder can work without the mic if you are looking to capture a room discussion but for 1 person, adding the mic is a real quality difference.
After the meeting we combine the video and audio captures using ScreenFlow. Editing is fairly simple for most cases, usually as simple matching up the action and adjusting some audio. The finished product is exported and then uploaded to Vimeo Pro, which acts as our library of sorts. (We pay for Vimeo Pro to keep ads out and to make sure we have API access.) People can watch the talks through Vimeo itself or our new Apple TV app, “PhillyCocoaHeadsTV” (search for “CocoaHeads” on the TV).
Overall I’m pretty happy with the current setup but I do have some ideas:
Hope you enjoyed my rundown. If you help capture stuff like this and have any tips or tricks, let me know. Thanks.
Local company Wildbit has been nice enough to host a running series of meetup events focused on running a software business and all that it can entail. Last night we discussed Managing Remote Teams and as a remote employee myself I was interested to hear what others people had to share. Below are some of my notes.
In attendance we had about 12 or so people. Many from Wildbit (many of their remote people were in town), but we also had a pair from another small (6+) local software company, one from a local company researching coworking and myself, whom works remotely for the Big Nerd Ranch, down in Atlanta.
Hope you enjoyed my notes. If you have anything to share about your own remote work let me know.
This answer / revelation caused a bit of a stir in the Philly CocoaHeads Slack so I figured I’d share it here as well.
Lots of people know and live by Xcode’s Quick Open Menu. You hit
Command-Shift-O and start typing the name of a file, a class or a method and have some very good options made available to you. Make a selection, hit return and bam, the file is now live in your editor.
But what about the assistant editor? Historically some of the best uses for the assistance editor was to view a file’s counterpart file, the header for an implementation file and visa-versa. With Swift’s lack of a header files, some people have come to put use the assistance editor of test files.
Regardless as to what you want in the assistant editor it’s always been a little clunky to pick the file. Well now you can use the Quick Open menu for this too, and it’s oh so simple.
Command-Shift-O and make your selection as normal. Instead of hitting
Option-Return — the file will now open in the assistant editor pane, opening it if need be.
That’s all there is to it. It’s a small feature but very handy for those trying to stick to their keyboard and avoid the mouse while moving around in Xcode.
For a handy Xcode 7 Shortcut Reference Card check out the Big Nerd Ranch iOS Course Resource repo for a PDF download. You can also get the card in print by ordering our latest edition of iOS Programming, 5th Edition — updated for Xcode 7 and Swift 2.
PS: Props to @lyricsboy for catching my typos!
Being the lead organizer of the Philly chapter of CocoaHeads, I always welcome the opportunity to chat with members of other meetups. It’s great to compare notes on how we run our groups, what’s worked and what’s failed. In particular I’ve recently chatted with the leadership of the Nashville CocoaHeads and was also able to attend an Atlanta CocoaHeads meeting while visiting Big Nerd Ranch. It was a great experience and has me inspired to capture some of my thoughts here on the blog. This first article is a walk down memory lane to document the history of Philly CocoaHeads.
The Philly chapter of CocoaHeads started out of IndyHall in 2008. IndyHall is a coworking space, a place for people who can work from home but choose not to; perhaps because they want a work/home separation or just to participate in the greater creative community. Back then IndyHall was still fairly young but had attracted together a strong tech following including:
Philadelphia Apple Developers (PHAD) never grew to be anything very large but I remember it fondly. It would usually be about 4-6 of us sharing a pizza and showing each other our Cocoa projects. I vividly remember Randy showing off his spreadsheet app which listed chemical equations on one side and then had an OpenGL cell rendering the compositions on the other. I also remember doing talks on Subversion and then Core Data. Again, they were small meetings but having even a few people who were interested in or working in Cocoa back then to bounce ideas off was a huge win.
The early meetings of our group were ran by Andy Mroczkowski and actually marketed under the name PhillyCocoa and not CocoaHeads. The meetings were very demo heavy with lots of roundtable questions and discussions filling in the cracks. Some members took to working on a side project, a calculator, outside of the meeting. The project didn’t get too far but the remanence of it have been preserved on GitHub.
This is a photo of IndyHall, Strawberry Street Edition. The first “CocoaHeads” meeting was held in that back meeting hut.
As the iOS SDK (or iPhone SDK as it was called back then) was announced there was a serge in new members and interest in the group. The biggest hurdle seemed to be Objective-C itself so we planned and ran a workshop.
Over two Saturdays, mixing lecture time and coding exercises from Learn Objective-C on the Mac, by Mark Dalrymple, Scott Knaster we got 12 or so people a head start on iPhone programming.
Meetings continued, now at IndyHall’s new home on 3rd Street (or N3RD Street as it would come to be known as). Eventually a December meeting was announced and Andy let it be know that if you were interested in the future of PhillyCocoa to attend. At the meeting Andy announced his upcoming departure to head to San Fransisco to be apart of a startup. Two volunteers came forward to help organize the group in his stead, myself and Mike Deaven.
Over the next year me and Mike enacted a handful of changes we’d hope improve the group.
One immediate change we did was move the website to WordPress. Previously Andy had a custom Ruby CMS / publish thing going and it wasn’t easily portable. I was able to get all of the old post converted into WordPress. The main goal here being enable multiple people to post and not have the code be machine dependent.
Another change was subtle, but I started to embrace the CocoaHeads brand in our naming and introductions. I always was aware of them and to me it seemed helpful to take the name and have our chapter listed on the main global site.
We also started to fiddle with the meeting format itself. Moving the pizza / social time to the front end of the meeting. This helped since we usually had a lot of stragglers arrive between 6:30 and 7:00, so by having the pizza upfront we could make sure to start the meeting with everyone present.
I also started to be a little more rigid in the introductions, making sure to repeat the basics of the group, who we were, what we did, when we met. I wanted new people to quickly get a sense of expectations.
The hardest thing back then was getting people to do talks. There were many meetings in the early days where we did not have a formal speaker and so it was on my shoulders to build a presentation to keep the group entertained. It was a lot of work but I think a major reason why we were later became more successful. I think it’s incredibly important to be consistent, to have that meeting every 2nd Thursday no matter what. Setting up that pattern and not giving into canceling meetings really helped solidify the group.
To help spur talks we started to request smaller commitments, show and tell time. A short talk or demo usually 5-15m in length. Much less to prepare and much less anxiety. It started slow but eventually kicked off a pattern of people coming forward to do talks, even “main” talks.
Up to this point Philly CocoaHeads did not promote itself too much. You heard about it through word of mouth or via IndyHall announcements. Looking to grow the community we decided to join Meetup.com for more exposure. It took a few months to get going but eventually started to bring in tons of new faces. Meetings quickly grew from about 10-12 people, closer to 20-25.
As of today we have about 870 registered members on Meetup.com. Now most of them are not active members. I’d guess if you defined “active” as participated in a group event sometime in the last 12 months, you’d probably end up with ~200 members.
Alfie joins us from NY via a Double.
When iOS 7 was announced we decided to do a special hack day to celebrate. We sold tickets to help buy a nice catered lunch and gathered at IndyHall on Saturday to hack on new iOS 7 APIs. The event was a huge success.
One newer member wanted to help do this more often and so Tom Piarulli joined the leadership to help run what has now become known as Side Project Saturday. SPS is typically the last Saturday of the month, starting at 10am and running until about 5pm. People come and go, work on their side projects, ask questions and otherwise socialize with their fellow geeks.
At around the same time the leadership also welcomed Kotaro Fujita to help run our website and Twitter account.
We are fortunate enough to have a very nice Apple Store here in Philadelphia. Sometime in 2013 I was approached by the business relations manager from the store. He came to a few meetings and introduced himself. He was really impressed with our group and offered to help us out and possibly host the meeting.
I was kind of torn. We had our start at IndyHall and while we were definitely starting to outgrow the space I didn’t want to leave. Me and Kotaro took a trip to the Apple Store to checkout the Briefing Room. The room is incredibly nice. It’s on the second floor of the store, not open to the public. It’s kind of a VIP area for larger demos and meetings. It had 5 mounted TVs, all wired up for AirPlay and sound. A huge wood table with 16 swivel chairs but plenty of space around the edges for fold up chairs. Fully laid out we could host 40-45 people and have a great AV setup to help support the speakers.
We made the move in November 2013 and it’s worked out great. The space is extremely accommodating and many of the members certainly enjoy the prestige of getting to meet in such a private venue.
In 2014, Curtis Herbert who had already been very active in the community as well as doing some talks for us joined the leadership team and started multiple new projects.
Firstly was CocoaLove, which started out best as I can recall as friendly outburst during my “Industry News” section while reviewing upcoming conferences. “Why don’t we have any conferences here in Philly?” — and so it began. CocoaLove is not an official child of CocoaHeads but we obviously share a lot of the same goals.
Curtis also helped spur new educational events we came to call Workshops. Typically one day, 5 hour events with paid for tickets (most money going to the speaker to help compensate them for prep time). We ran about six or so over the last year and a half, covering introductions to Objective-C and then later Swift, App Marketing, UX design, and more. Workshops are incredibly loved by our members and sell out quickly. The hardest part about running them is the custom content creation. We have some ideas on how to improve that moving forward and hope to offer more Workshops in the year ahead so stay tuned.
And finally we have our “Suburb” edition of Side Project Saturday. The city of Philadelphia is very flat and wide, with an extended suburban layout. We have many members who live outside the city and can not always participate with our center city events. To help, we started running a “Suburb” edition of our Side Project Saturday event. These are held at the Apple Store in King of Prussia. We’ve been able to host a few and hope to do more. Again, Curtis has been very helpful in organizing this.
In 2015 we continued to evolve and expand what we offer, this time with recordings. We’ve been talking about recordings for awhile but in 2015 things started to fall into place. I’ll go into detail as to how we record in a future blog post, but put simply it’s capturing what video we pipe to the monitors and then using a lapel microphone for the speaker to capture their voice. After the meeting we match the two together and then publish to Vimeo. During the fall we also added a custom AppleTV app which streams the content as well (search for “CocoaHeads” and you’ll find it).
Another new endeavor for 2015 was the Book Club. We started it over the summer reading through Cocoa Programming for Mac OS X and then restarted it this winter with HackingWithSwift.com. Book Club basically has members work through chapters and then meet online to discuss how it went. Over the summer we met every other week, while the winter edition has been more aggressive doing it every Monday. A big thanks to Michael Mayer for helping to run the latest Book Club season.
So it’s 2016 and things continue to look good. I’d say the biggest problem we have is that we occasionally max out of room occupancy at the Apple Store but not enough to really justify a new venue. We also recognize our website could use a lot of work to meet our high standards but it remains a fairly low priority overall.
As the main organizer I’m extremely lucky to have such great support from the members and the rest of the leadership. There is no way we could do this much work if it wasn’t for the many volunteers we have. I’m extremely proud of the community we’ve made and continue to run.
To those running similar meet ups a few closing recommendations:
I gave a talk at Philly CocoaHeads last week reviewing various ways to consume JSON using Swift, including a preview a new open source project we have coming out soon™ from Big Nerd Ranch called Freddy.
JSON is a fundamental internet format and if you are building iOS apps the chance you need to download and consume JSON files is extremely high. Additionally, with the introduction of the statically typed Swift language it’s been a little more difficult to work with JSON properly. This talk will cover what JSON is, how one can work with it naturally in Swift, the limitations of doing so, a review of a few popular third party solutions and the introduction of a new JSON tool about to be open sourced by Big Nerd Ranch.
This post is part of a larger series where for 31 days I’m posting a story about a particular product or service I’ve come to enjoy.
Skitch is a screenshot and notation tool from Evernote. With Skitch you can take screenshots using various options and then annotate them with vibrant pink arrows, shapes and text. Like this:
I really enjoying using Skitch during app audits where I can take a bunch of screenshots on device and then import them for annotations. Having the visual evidence to help back up your argument is really handy. The software itself is fairly strait forward and focused. With an Evernote account it will sync all your files though I usually import and export them as I need.