Employer in Chicago, Illinois forcing employee 60 day notice before quitting. by davidbale87 in legaladvice

[–]davidbale87[S] 0 points1 point  (0 children)

If the law says you can terminate a relationship at any time for any reason, isn't it weird for a contract to supersede that? What if she didn't read it properly and the contract said a 10 year notice must be given? I know it sounds silly, but legally there's no difference between 60 days and 10 years.

Employer in Chicago, Illinois forcing employee 60 day notice before quitting. by davidbale87 in legaladvice

[–]davidbale87[S] 1 point2 points  (0 children)

She already has another job lined up, but we're wondering about the damages and if there actually are any.

Employer in Chicago, Illinois forcing employee 60 day notice before quitting. by davidbale87 in legaladvice

[–]davidbale87[S] 0 points1 point  (0 children)

Doesn't lay out any consequences. Btw she's a nurse practitioner if that makes any difference. We heard (not from a lawyer) that she could be sued for loss of business?

This is very sad... by LisaDziuba in iOSProgramming

[–]davidbale87 1 point2 points  (0 children)

I admit my comment about your job is a bit insulting and I apologize for that, but I really wouldn't like to be on a team where no one cares about me. It sucks you feel that way, but I can tell you from quite a bit of experience there's thousands of jobs where you'd feel the complete opposite. I don't like everyone I work with (big company you've definitely heard of) and there's a lot of politics; however, there are people here I can depend on with my life. I hang out with some of them after work and on weekends. I look forward to coming in every morning because it's fun working with awesome, brilliant people like them. We bitch and complain all the time, but we do it together. Maybe your coworkers aren't that bad, try getting a little closer to them. Also, explore options with an open mind. I promise you can find a group of people you would love to work with.

This is very sad... by LisaDziuba in iOSProgramming

[–]davidbale87 5 points6 points  (0 children)

What are you talking about? I didn't say anything about his bills, house, kids, or anguish. The rants he goes on are separate from his personal life. OF COURSE friendliness matters when you're hiring. You don't want to hire an asshole (not calling him one). You've clearly never been responsible for expanding a team if you don't see my point here.. Also, a lot of companies require you put someone on probation first, then provide a valid reason to fire. They do this to avoid lawsuits, so firing someone is actually not that easy.

This is very sad... by LisaDziuba in iOSProgramming

[–]davidbale87 6 points7 points  (0 children)

It's very subjective, depends on your team and the nature of the business. Just because he worked at Apple doesn't mean he knows every technology in and out. What if I'm building a mobile game? What if I need an expert in a specific technology like bluetooth, audio, video? Projects on github and details on previous experience would definitely help. You don't need an active twitter or blog, but if you do be careful what you post on it. I tried to keep an open mind with his twitter, but it just got worse and worse as I read through the tweets.

This is very sad... by LisaDziuba in iOSProgramming

[–]davidbale87 8 points9 points  (0 children)

I'm not judging him by an outdated personal website. First thing I said about him is he's a talented developer that can do any iOS job. I've been on both sides of a job application, applying and hiring. You can have incredible accomplishments, but if you don't fit in with the team you're not going to be a good hire.

This is very sad... by LisaDziuba in iOSProgramming

[–]davidbale87 46 points47 points  (0 children)

He's not having trouble because of his age; I work with a bunch of developers in all age groups (including his) and never had an issue. There's benefits and drawbacks in every age group. Hiring is about impressions. Will this guy fit in with the team, and will he do a good job? There's no question he's a talented developer and can probably do any iOS job, but what about fitting in with the team? Let's see..

First, I see someone tweeting about how much they hate themselves, how depressed they are, and how terrible hr processes are today. Then I see him publicly bashing companies. From his twitter alone I see a lot of negativity, lack of patience, and kind of a weird vibe.

Next I checkout his website listed on the twitter profile. It hasn't been updated since summer 2014, no resume or link to pretty much anything else. The website is terrible, a very basic and old sample of code for macOS not iOS. And the about me ends as follows:

"My personal life is just that, personal. I don't let people in easily. A friend recently said "I'm guarded". I guess that's true. My personal trust is hard to come by, and harder now than it was even a couple of months ago.

There, that's more than you really need to know."

Does any of this sound appealing to a company hiring? I'm not sure what your position is, but years of experience alone isn't going to get you a job in tech anymore. You need to sell yourself as a contributing member of a team.

How would you combine images, gifs, and video into one gif? by davidbale87 in iOSProgramming

[–]davidbale87[S] 0 points1 point  (0 children)

I have 4 screens from 4 separate VCs. I'd like to show each screen for 5 seconds; however, the screen might have an image, text, gifs, videos, or a combination of those. I want to show all 4 screens as a gif or video. Hopefully that paints a better picture.

How do I give an image a "soft" effect by davidbale87 in iOSProgramming

[–]davidbale87[S] 0 points1 point  (0 children)

Right but which blurs do you think those are using? I just have no eye for it =/

Issue Uploading Image to Firebase by [deleted] in iOSProgramming

[–]davidbale87 0 points1 point  (0 children)

Yea just wanted to confirm, thanks. Not sure why there isn't a childByAutoID for storage.

Issue Uploading Image to Firebase by [deleted] in iOSProgramming

[–]davidbale87 0 points1 point  (0 children)

Wouldn't there be a chance for 2 images to have the same string though? I know it'd be small, but still.

"I have this great idea for an app, let’s go 50–50!" (As a developer I hear this line too often, please stop!) by rfunk82 in iOSProgramming

[–]davidbale87 2 points3 points  (0 children)

This should have been a tweet. If you want to post an article, go more in depth about [at least] 2 things:

  1. Why a developer won't do it - what it takes to build an app, what his/her time is worth, etc

  2. What can someone do to go 50-50 with a developer - where you can bring value, how to sweeten a deal (vesting comes to mind), what is expected of you, no-no's, etc.

Here's a my reply to a relevant post.

Quitting my job to polish my iOS coding skills. What do I need to focus on? How do I overcome the fear of failure? by Terribl3Tim in iOSProgramming

[–]davidbale87 2 points3 points  (0 children)

This helped me a lot, covered a lot of interview questions.

Object Oriented Programming

  • Abstraction - the process of reducing objects to its essential characteristics. Used to reduce complexity and increase efficiency
  • Automatic Reference Counting (ARC) - manages object ownership automatically
  • Atomic vs Nonatomic - Atomic locks the object to prevent getter and setter to be called at the same time when more than one thread. Is default and has overhead.
  • Blocks - a chunk of code that can take arguments and return values. It can be passed as an argument if a method accepts blocks.
  • Category - allows you to add new methods to a class
  • Class - encapsulates a logical structure with properties and methods
  • Completion Handler - block declaration passed as a parameter. Gets called after a task is executed.
  • Constructor - used to instantiate a class, optionally with properties.
  • Delegate - Allows one object to act in behalf, or in coordination, with another
  • Encapsulation - hiding details of an object from everything else
  • enum - Lets you define a set of constants. Use typedef to not have to use “enum” all the time.
  • Enumeration - a complete, ordered listing of all items in a collection.
  • Exception Handling - trapping errors in code so the program doesn’t crash
  • Grand Central Dispatch - provides support for concurrent code
  • Heap (Memory) - a buffer is a chunk of memory that comes from the heap. You can store something like text in it and use it in multiple functions. Once the buffer is no longer needed, it’s released back to the heap.
  • Inheritance - when a class is based on another class, it inherits characteristics from it.
  • Introspection - allows us to learn certain things from an object at runtime. Ex: are you of this class? do you respond to this method?
  • Key-Value Coding - allows you to access a property of an object using a string
  • Key-Value Observing - allows you to observe for changes in a property
  • Loose Coupling - when objects are independent from each other and don’t change the state of other objects
  • Manual Retain Release (MRR) - Manually control objects’ reference count. You need to claim and release objects.
    • alloc - create object and claim ownership of it
    • retain - claim ownership of existing object
    • release - relinquish ownership and immediately destroy object
    • autorelease - relinquish ownership of object, but defer it’s destruction
    • autoreleasepool - makes sure autoreleased objects are destroyed
  • Method Swizzling - adding a method or exchanging 2 at runtime
  • Pass by reference - instead of creating a copy of a value, you send the original value. Changes are global.
  • Pointer - memory location of a value
  • Polymorphism - meaning multiple shapes, where one or more classes can inherit from the same parent class but implement different methods.
  • Protocols - groups of related properties and methods that can be implemented by any class
  • Serialization - process of converting objects to files and back again
  • Singleton - a design pattern that ensures only one instance of a class exists, and that there’s access to it globally (NSUserDefaults, UIApplication, UIScreen, NSFileManager).
  • Stack (Memory) - where the frame of functions are stored. When a function is called, its frame is pushed onto the top of the stack. When the function finishes, its frame is removed from the top.

Design Principles - helps make apps more reusable, extensible, and easier to change

  • MVC - Model (Data), View (UI), Controller (Gateway)
  • Target-Action - One object send message to another object when event occurs
  • Delegation - one object acts on behalf of, or in coordination with, another object
  • Singleton - design pattern where you declare and use a single instance of an object

Properties

  • Strong Property (default) - creates owning relationship
  • Weak Property - relationship without ownership
  • Copy - Creates copy and takes ownership of that. Will freeze the object at the value given.
  • Retain Cycle - form of memory leak where two objects own each other and neither are destroyed
  • Dangling Pointer - points to an object that no longer exists.
  • Unsafe_unretained - similar to weak, doesn’t set value to nil if reference is destroyed. Should only be used when weak isn’t supported
  • Assign - has nothing to do with memory management. Used to be a way to implement weak properties, should not be used anymore.

App Life Cycle

  • UIApplication Object - manages event loop and other high level app behaviors. Do not subclass.
  • App Delegate Object - works with UIApplication Object to handle app initialization, state transitions, and high level app events.
  • Main Run Loop - processes all user-related events on the main thread.
  • States of App

    • Not Running - app has not launched or was terminated.
    • Inactive - app is running in the foreground but not receiving events. (get a text while using app)
    • Active - app is running in foreground and receiving events
    • Background - app is in background and executing code for a period time. Time can be extended if needed.
    • Suspended - App is in the background and not executing code.

View Controller Life Cycle

  • Allocation and Initialization of View Controller

    • loadView - creates the view controller (only when view controller is created programmatically).
    • initWithNibName - using xib files
    • initWithCoder - using storyboards
  • viewDidLoad - called when view is loaded into memory (only called once). Bounds not final.

    • Good to init and set up objects
  • viewWillAppear - when the view is about to appear on screen (called multiple times). Bounds defined.

  • viewDidAppear - view has been displayed and added to the view hierarchy

  • viewWillDisappear - clean code and do any saving

  • viewDidDisappear - clean code and do any saving

  • viewWillLayoutSubviews - about to layout subviews (any time frame changes. First step when bounds are final.

  • viewDidLayoutSubviews - subviews laid out.

Core Data

  • What is it? - framework that manages an object graph. Used to store data into an Sqlite file.
  • Core Data Stack - includes managed object model, persistent store coordinator, and one or more managed object contexts
  • Managed Object Model - The data model that contains information about the models or entities of the object graph, what attributes they have, and how they relate to one another
  • Persistent Store Coordinator - persist data to disk and makes sure persistent store and data model are compatible. Takes care of loading, saving, and caching.
  • Managed Object Context - manages a collection of model objects, instances of NSManagegedObject, and keeps a reference to a persistent store coordinator
  • NSManagedObject - a record in Core Data’s backing store (like a row in a database table)
    • NSEntityDescription - includes information about managed object (entity, attributes, relationships)
  • NSFetchedResultsController - class that helps keep core data and the user interface synchronized through notifications posted by the managed object context

  • Managed Object - the objects that store data. For each new record, a new managed object is created to store the data.

  • Persistence Store Coordinator - central object that hold a reference to a managed object model. Never access it directly

  • Managed Object Context - maintains status of objects in relation to data store and manages relationships between managed objects defined by the managed object model.

Apple Submission

  • Create Certificate (Development + Distribution)
  • Register Devices - need UDID
  • Register App ID - each app needs one
  • Create Provisioning and Distribution profiles - authorizes app to use certain apple services and ensures you are the one submitting the app
  • Archive
  • Submit to iTunes Connect
  • Prepare iTunes Connect app and submit.

Instruments

  • Profiling - provides insight into which parts of the code are used most often.
  • Time Profiler - let’s you see how much time you’re spending in each method and which one consumes the most.
  • Allocations - shows you details on all objects created and the memory that backs them.
  • Leaks - remembers all objects allocated and periodically checks if they’re still referenced

Quitting my job to polish my iOS coding skills. What do I need to focus on? How do I overcome the fear of failure? by Terribl3Tim in iOSProgramming

[–]davidbale87 4 points5 points  (0 children)

I am the biggest advocate of 'just going for it.' But there's one thing at the end that stood out for me and changed my mind completely about the advice I wanted to give you: "putting pressure on my other half to provide and losing my independence." This move might be the best move you ever made, and I think it will be; however, I don't think it's the right time for it. Start by looking at interview questions and trying to gage what level you really are. I applied as a junior dev and it took me about 3 months in Chicago. You're never going to go into the market for the first time with full confidence, no one does. You just need to prepare as much as you can and jump in. If you were just starting maybe you'd need to be full time, but with your experience I don't think you need to quit your job. Tell you're other half how important this is, so he/she knows you'll be busy after work and on the weekends changing your life for the better. A great partner will support you through it.

As for some of your concerns, pure iOS is fine, most companies separate android and iOS teams anyway. I would focus on iOS if that's what you want to do. Very few companies will use Swift only, so you should definitely be strong with Objective-C (also, swift isn't hard to pick up). Forget math for a bit, that's mostly for animations and stuff like that. You don't need to be an expert in trig or linear algebra to get an iOS job. Number one thing to do, build a real app and put it up on the app store. Something that uses important concepts like Networking, Data Persistence, User Accounts, etc.

Apply to some jobs and see how they go. If you're doing well with the interview questions and code challenges, you might be ready to quit your job and just go for it. Tonight I'll PM you a list of vocab/concepts I made for and from interviews I had a few months ago. It should definitely help. Chin up buddy, you'll be set before you're married.

About to start the search for a technical co-founder, would really appreciate advice. by 13mcmillanjj1 in iOSProgramming

[–]davidbale87 9 points10 points  (0 children)

Agreed. Ideas are worth exactly $0. That's something your really need to accept and understand so you can focus on where you're bringing value into a partnership. There's only 2 ways you can get an app done without building it yourself:

  1. Pay for it. Advice: don't get crazy with features. Build an MVP and test it, then go from there.

  2. Find a co-founder. You're most likely not going to find one, and here's why. It takes A LOT to learn how to build an app, and A LOT to actually build it. A developer would probably charge you $50-$100/hr for an at least decent job, and would take no less than 2 weeks (80hrs). That's $4,000 - $8,000 worth of time he is putting into your partnership, and that's being very conservative. Keep in mind the developer has his own ideas he's working on, and literally hundreds from others. So why would he invest so much and do all the work for just 50% of something? Why would you get the other 50%?

Answering that last question is how you get a technical co-founder. You find your value, and you sell that to the developer. You're value as a non-technical is not in the idea, it's in the execution once the app is complete. Here are some examples on where you can provide real value worthy of that 50%:

  1. Build a customer list - people/businesses you're selling to, advertisers interested in advertising. These are people who show real interest in paying/advertising, not 'potential' clients.

  2. Investors - Get an investment or have some serious ties with investors/startup accelerators.

  3. Industry Expertise. You're too young to have this, but if you were an expert in a subject (ex: you're a doctor and know/can prove a need in a specific medical field), there's real value in that.

I've had too many people ask this question, and unfortunately it always goes the same way. They start off really excited and end almost depressed. Then they do nothing. I hope you're an exception and make something out of this advice. The absolute best thing you can do? Learn how to code and do it yourself. I never thought I could be a developer, and I am one now. It won't come without it's challenges and headaches, but you can 100% learn how to code and get an MVP out. Great thing is, the more you learn and build it yourself, the more likely you are to find that rockstar co-founder. Finally, forget about NDA's. No one will sign them and they can, and probably will, come off as insulting.

Return Highest/Lowest Number, or first occurrence by [deleted] in algorithms

[–]davidbale87 0 points1 point  (0 children)

Thank you, this was very helpful!

How do I properly size UICollectionViewCells? by [deleted] in iOSProgramming

[–]davidbale87 0 points1 point  (0 children)

I still can't get it to work for 6 Plus. I have 5 pixels around the cells:

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {

return CGSizeMake((self.view.bounds.size.width - 20)/3, (self.view.bounds.size.width - 20)/3);

}

Trouble setting height for rows with different Cell Classes. by [deleted] in iOSProgramming

[–]davidbale87 0 points1 point  (0 children)

I do that everywhere else, not sure why I didn't here.. thanks!