Category Archives: Tech

My Tech Posts

The Swift Programming Language – Day 2 – Classes

Oof, starting out the day kind of rough yesterday. I’m working through the first two paragraphs of the book’s section on introduction to classes and I’m a bit stumped. In general I understand object oriented programming, inheritence, polymorphism, etc… Having said that I sometimes get caught upon the syntax and the issue I’m having today doesn’t even really have to do with classes I don’t think. Right in the beginning of the intro to classes there was the following experiment:

EXPERIMENT
“Add a constant property with let, and add another method that takes an argument.” 1

I understand what ‘creating a constant property’ is and know how to do this using let:

let shapeColor = "Green" 

What I don’t understand is the “add another method that takes an argument” part. An argument is just a variable something that you pass into a function. I assume it just wants me to create a function (is that synonamous with method?) that takes an argument… which I’m assuming it’s trying to get me to use the constant that I just created (shapeColor). I don’t really understand this in context of the class I just created? What am I missing here? Here’s an exerpt of the code I just wrote from the example in the book:

class Shape {
    var numberOfSides = 0
    let shapeColor = "Green"
    func simpleDescription() -> String {
        return "A Shape with (numberOfSides) number of sides."
    }
}

After doing a bit of reading on StackOverflow I think I might have a feel for it now. It seems like a method is a function that you use to get at a property contained in a class. In the example below. I’m just calling the method and passing it a color which then returns a string that uses the color I passed into it. I think i was a bit confused because the book was calling it a method but the sytax still refers to it as a function (‘func’).

class Shape {
    var numberOfSides = 0
    let shapeColor = "Red"
    func simpleDescription() -> String {
        return "A Shape with (numberOfSides) number of sides."
    }

    func getColor(color:String) -> String {
        return "My shape is the (color) color - which is very nice."
    }

}

var shape = Shape()
shape.getColor("blue")

  1. ”Excerpt From: Apple Inc. “The Swift Programming Language.” iBooks. https://itun.es/us/jEUH0.l
    “` 

Learning Swift Programming – Day 1

The Swift Programming LanguageOkay, well technically it’s not Day 1 (but i wan’t to recap my learnings once a day and this is the first post).  I’ve been working through the “The Swift Programming Language” for about a week now. I’m on page 18 of the book and I’ve written ~287 lines of code in the playground. It’s a ton of fun to go through but I find myself not exactly understanding everything.

Specifically this example below.  I understand that is sorting and that reversing the $number will reverse the sort but I have no idea why?  The books says:

“You can refer to parameters by number instead of by name—this approach is especially useful in very short closures. A closure passed as the last argument to a function can appear immediately after the parentheses.” 1

Reading that above, and writing the code below I still don’t understand what $0 and $1 are referring to? They are a stand-in for the variables but what variables exactly? I understand that I must be passing the array of numbers and ordering them based on one being more than or less than the next. I also get in the side bar that to complete the first and second function it took 9 iterations. I’m assuming then that the sort function must sort an array… and that maybe it’s running until the function returns false so until $1 is no longer > than $2. But I’m totally guessing here. Any help understanding this would be appreciated.

let mySort = sort([1,5,3,12,2]) { $1 > $0 } // no idea what this is doing?  I'm assuming it is sorting the array of numbers.
mySort

let theSort = sort([1,5,3,12,2]) { $0 > $1 } // no idea what this is doing?  I'm assuming it is sorting the array of numbers.
theSort

  1. Excerpt From: Apple Inc. “The Swift Programming Language.” iBooks.https://itun.es/us/jEUH0.l 

Is Pandora Radio missing a big business opportunity?

Is Pandora Radio missing out on a business opportunity? Not knowing anything about the recording industry I’ll admit I might have this all wrong but I was thinking that perhaps Pandora should be using it’s strength in data mining and analytics to sign new recording artists. It seems similar to the challenge that Netflix and Amazon are facing with licensing content… and have since gone after creating their own original content. I would think that Pandora could combine deep analytics and profiles for the music they play along with the demographics of their listeners and the data about likes and dislikes they provide to predict the next big artist or song that has yet to be discovered. They could then sign that artist themselves and license that music at a significant discount compared to what they would pay a current record label? Maybe they could even partner up with “The Voice” or “American Idol” to promote their up and coming artists?

Anywho, that’s what I talk about in this short video post that I recorded after thinking about on my way home from work tonight.

My thoughts on enterprise office computing

Microsoft Cloud Computing SlideI was recently asked by someone to give my thoughts on enterprise office computing.  The general context was around what my perspective was on an “any device, anywhere” type capability inside the enterprise. She was looking to understand what would make organizations more effective and productive?

Below are my inputs on specific questions in the context above:

Q: What are today’s pain points to being productive and effective with today’s office computing hardware and software in the enterprise?

  1. Hardware is lacking in power and performance for our developers and analysts because the enterprise hardware refresh rate is not keeping pace with the big data needs. Enabling these folks to have a yearly stipend towards purchasing their own hardware and self-supporting it would bolster their productivity. Give them an easy way to partition off their work login from their personal login and easy way of migrating their data between machines (see point 2 below) and you’ll have happier employees with a much faster refresh rate.
  2. Keeping the content, settings, and application virtualization in the cloud and prevalent on any device they log into w/int the 4 walls of the enterprise or via virtual walls created by VPN would be critical.
  3. Having a common ‘cloud based’ content enterprise storage across all devices (like Dropbox, evernote, or Google Docs) would increase productivity. Continue reading

Jawbone Up Bracelet – Yes please.

A screenshot of ATT's UP by Jawbone page.
Two please!

My latest obsession is the UP bracelet by Jawbone!  Similar to the Fitbit this device will help you track activity levels, sleep, and food consumption.  I’m so excited about this product and I can’t wait to use it.  I’m pulling hard to try to get a review model and post a review over on iUpgrade.me and my YouTube channel. If I get the opportunity to do so I’ll drop you all a line when I’m done through Facebook, twitter, and here on JoshuaCork.com.

So should you have any control over who gets review models (I’m looking at you Jawbone product marketing team) and are reading this pretty please drop me a line or give me a call I’m certain I can create a very objective and fun to watch video review of your product and I can get the word out to my social media peeps and other Fitness geeks like me!

 

Virtual Machines

So i’m trying to get back into development of Microsoft solutions and sharpen my skills a bit.  Per my earlier post I’m looking to get back into Visual Studio Development.  I’ve got VMWare Fusion installed on my iMac and I’ve got a volume license MSDN subscription.  I don’t really want to spend the time to build my virtual machine.  I’m trying to figure out if I can purchase a pre-built virtual machine with Windows 7, Visual Studio and I provide my license codes for the software (so I use my license for Windows 7 and Visual Studio for instance).  This would be a great bootstrap for me and save me lots of time installing the software.  Anyone have any ideas of where I could download pre-configured virtual machines?

Thanks for any advice!

 

Getting back into coding….

sql azure logo

So I’ve been reading a lot on happiness lately and I seem to see signs everywhere pointing me towards doing something more motivating, more enjoyable, something that makes the day go by a lot faster.  One of the things I used to do all the time and thought I was really good at was problem solving using MIcrosoft SQL – writing code.  The days would fly by and I was super energized.  I don’t feel that way anymore and it’s sad.  I want to get back into it.  Life is too short to be spending time doing something you don’t enjoy.

So, too my point.  I’m thinking about spinning up on Microsoft SQL Azure.  Re-learning my old skill with a new twist (Azure is Microsoft’s cloud computing offering).  So over the next few week’s I’ll be putting together a plan to sharpen my skills a bit and get back in the technical groove as time permits.  At least that’s the plan for now.  🙂

I love FaceTime…

I was recently traveling to California on business and had a chance to use Apple’s “Facetime” application for the iPhone 4…. It’s fantastic! The calls work seamlessly as long as you have a good wifi connection. In the example pictures below I’m on a very low bandwidth free hotel wifi connection but can still video chat with my wife and son much more easily than if I were on skype with both of us on our computers. It’s amazing how much of a grin this put on my face (as you can see from my flattering pictures below) as well as my son’s face. That’s Kal… he’s about 4 months old and really enjoyed seeing my on his mom’s computer screen. As you can see from the pictures he was all smiles and happiness to be seeing me when I wasn’t there. I’ll be taking a trip to the UK in the next few months and I’m hoping I can use this from there as seamlessly w/out having to pay for the international call as well…. will let you know what I figure out there!


View all the photos here.


Technology you can leverage as a student


I promised I’d write a post with more details on key technology that I thought you could leverage within the MSIM program. Well, it took me a little bit longer than what I thought it would and this post isn’t as refined as I would like it to be… but here is (please forgive me if there are some grammatical errors here… I used Macspeech Dictate to write this post). Enjoy!

MICROSOFT OFFICE ONENOTE

Microsoft office OneNote is a fantastic application that is part of the office suite of applications. OneNote really is a note taking tool it was designed to be either used with your traditional keyboard and mouse input or used with the applet type application where you can draw and scribble notes like you would on a white board or piece of paper. OneNote has some key features that I love and use them everyday work. In no particular order here are my favorite features:

1. Audio Recording: Microsoft OneNote allows you to record audio through your laptops built in microphone. This in and of itself is not a real compelling feature, what makes it compelling is that as you’re recording audio and typing at the same time OneNote is indexing the audio synchronized to the notes that your typing at the time. So what that means is that if you were to go back later on after you’re done recording your audio and taking notes and you had a question about some note that you took the word very detailed with what you type you could hover your mouse over that particular word and it would pull up audio controls (meaning play, pause, stop etc.) and allow you to click play in the audio would start just a few seconds prior to when you type that word in your notes. It’s difficult to describe here in words so I’ve included a link to a YouTube video that describes what I’m saying.

o General Feature overview including search: http://bit.ly/doCnl9

o Audio Recording Linked to your Notes: http://bit.ly/bKQjWm

o Terrible Video but if you jump to 2:10 you can see the audio being played back the text note that was taken at that time in the recording: http://bit.ly/a9WuNS

2. Search: Microsoft office OneNote has a fantastic search feature that allows you to search text throughout all your notebooks tabs and pages. In addition to searching the text that you typed in OneNote the searches you perform will also search for text in any screenshots that he pasted in as well as, if you have the option turned on, words in any audio recording that you have recorded.

3. Collaboration: This is a great feature when you’re on the same network. OneNote allows you to share a notebook or a particular page of a notebook with colleagues on the same network. When you’re sharing you can see near real-time updates as both you and your colleagues are simultaneously entering text into one document (actually inserting anything including drawings and images). This is another feature that somewhat hard to describe in words but the link listed above as general feature overview describes this well with video.

Evernote

Evernote is another great note taking tool. It’s not nearly as robust as Microsoft one note but it’s an Internet connected platform or the storage for your notes is actually in the cloud. What this means is that the notes that you take with Evernote will be accessible to you via your mobile device, your work computer, your home computer, and pretty much anywhere else you’ll need to get access to notes. It also has a fantastic search feature the searches are actually performed on the server on your local client laptop or desktop. The benefit of this is that Evernote has some serious software running in the background that can convert handwritten notes and pictures of things like business cards into searchable text. It also works really really well. Evernote has a free version that is very usable for your everyday note taking needs they also have a paid version that is more robust and give you more CPU cycles more quickly to perform the algorithms that convert those handwritten notes into searchable text than the free user. Evernote also has some pretty useful extensions for all the major Internet browsers that actually allows you to clip text and images from a webpage directly into Evernote and make all that searchable.

Skype

Skype is an application that allows you to share your desktop between two users, do videoconferencing, or make voice over IP phone calls over the Internet. My wife and I were the first ones to use this in the MSIM program, calling into the classroom through one of our classmate’s laptops to listen and lecture while we are out-of-state attending a wedding. At that time Skype didn’t have some of the features that it has today that would be very useful in the MSIM program. The first feature that I wish they had was desktop sharing using Skype today you can call another user over the Skype network and allow them to see your desktop or for you to see and control their desktop. The second feature I wish they had is one that I haven’t yet used with Skype but just came out as part of Skype Beta, and that feature is group video chat. This feature allows a number of users to do videoconferencing at once, so you’d be able to see your two other colleagues and they would be able to see you all at once (currently videoconferencing is only enabled in the stable version of Skype on a one-to-one basis).

Google wave

Google wave is super hard to describe so other than saying that it’s a great tool for real-time collaboration amongst team members on a point at the following link:

Enjoy!

Google Docs

Google Docs is another great application for individual document creation, document management, document storage, and team document collaboration. I think Google docs can be used for MSIM students to collaborate on really any document type that is supported by Google docs (text documents, presentations, spreadsheets etc.). We didn’t have Google docs when we look to the program instead we used some free wiki ca
pability to collaborate on our papers and joint assignments for the program. However, if I were going to the program today I think this would be my key application that I would use for collaborating with my teammates on documents.

MindMeister

MindMeister is a tool for mind mapping or interactive brainstorming. There’s a pretty decent free version that MindMeister offers on their website.

DimDim

DimDim is another tool that allows you desktop sharing. They have a free version of the tool that works with up to 20 users or so simultaneously.

Dropbox

Dropbox is online file storage in the cloud. Dropbox would be useful for storing both personal documents that you use throughout the program as well as any file that you want to share with your teammates over the course of the program. This is because Dropbox allows you to create folders right on your desktop for any file type and store those files both locally and in the cloud. All of these files are backed up and revisions are kept so you can rollback to a previous version if you need to. Once your files are placed in the Dropbox folder you can then control access to who can read or edit those files. Dropbox currently offers 2 GB of storage for free. You also get an additional 250mb of storage for each person that you refer that joins dropbox… and just as full disclosure that’s what I’ve done with the link up above.


I love the Fitbit!

So, it’s now been almost 3 weeks since I received my Fitbit. I thought I’d take a minute to do a fitbit review and tell you about my experience using the Fitbit over the last few weeks. So let’s get to it:

UN-BOXING THE FITBIT
The Fitbit came in a sleek plastic case that was very easy to open and get the Fitbit out of. Also included is the packaging was a very prominent label that “to start using your Fitbit, go to www.fitbit.com/start” which made it really easy to get started.

SETTING UP THE FITBIT.
Getting the Fitbit set up was a little challenging. At first Continue reading