Becoming tech father

I’ve recently had twin girls and I’ve been in the process to become a parent. Have been reading and following tons about what to expect in pregnancy as well as rising a child. Obviously, one of the active conversations everybody is having in many different aspects is; how technology affects a child’s development. My opinion is, there is a lot goes into how technology affects a person’s education depending on how kids are exposed to the technology itself.

Since my babies are very small and won’t have the difference to have or not have technological additions to their life for a while, I’m thinking how I would use tech as a tool in my parenting. I’ve been adjusting my lifestyle and adapting my tech skills to taking care of my new babies. One of the things I’ve been reading was how engineer/developer dads approach to many different aspects of technologically enhancing their early parenting experiences. Most of these are obviously about optimizing the process of nursing babies, getting an early education with technological products.

New entrepreneurs are born with kids

(Not the kids that born but the parents becoming entrepreneurs)

Often we see a lot of new ideas and products come out of these raising-child struggles and ideas around improving ancient methods of childcare. We see many fun examples of them in Shark Thank 🙂 I really enjoy watching a lot of tech-dads or tech-moms seeing an inefficiency in the process and come up with a new way of doing this never changing life cycle of humankind. I totally get why childcare ignites entrepreneurial mindset.

Every human being born the same way, raised same way at least it’s very similar despite the cultural differences at least early on in their life. This creates an amazingly similar pattern to be worked with for an entrepreneurial thinking. And best, most parents repeat this cycle multiple times.

A new area to geek on for tech-parents

Not all the custom-made solutions make its way to being a new product or service. Most often, you see these small iterations shared conventionally. With the internet, now these conventional wisdom is out there in blogs (like this one). And many parents are sharing their experiences, how they overcome certain obstacles or struggles in their parenting journey.

This is particularly convenient for tech-parents. I’m sure I’ll be participating on this like others. In fact, I already made experiments with some hardware to enhance my fresh baby-care journey.

What this means in the internet, software world is pretty much a lot of new apps and some hardware supported software or services. Since geeking on this is essential, I will be sharing my experiences soon (within the tech-related topics).

Super Affordable Cloud VPS: Scaleway

Recently I have been having performance issues with few personal sites that I was hosting on my small Digital Ocean instance. I was using 2vCpu, 2gig ram instance costing me $10/month + 30gb disk for extra $3/month. To be honest this is a very very cheap personal server to have and host few sites as well as doing minimal software tests and playing a good proxy/vpn when I need it.

I have installed New Relic, Datadog, Pingdom and linked them to my personal slack account to have everything monitored and reported seamlessly. I’ve been getting CPU and occasional memory alerts mostly because of my wife’s blogs that is getting much higher traffic than my sites. Even with that traffic, it was making me feel the performance that I supposed to get from that server wasn’t as consistent as I wanted.

A new kid in the block

A few weeks ago I started going into cheap ssd vps hunt again and I saw many more players in the game including Amazon Web Services’ Digital Ocean killer. I compared many services and wanted to find something more stable and reliable. But I found a very very new and smaller company utilizing raspberry pi like ARM based hardware in greater scale for this small to medium size VPS services called Scaleway. Although the CPU architecture as “server” is foreign to me, I was getting curious. One of the differentiator factors for Scaleway is because of the initial and maintenance cost of the hardware, the costs of equivalent instances to be ~5 times cheaper. This means I can get 3-4 times more powerful machines with the same minimal monthly cost I’m spending for Digital Ocean or similar services. Scaleway is definitely pushing hard on the $5/mo SSD VPS game.

The main question was and remains “how reliable this new French startup for a permanent VPS need?”. This is obviously a risk but for me, it’s an easy risk to take because I mastered to set up and migrate web and database servers in many years with bare minimum servers as well as with cloud services like AWS or Azure.

So I took the risk and moved to Scaleway in 2 hours with 2x size instance with pretty much half of what I pay which is ~$5/month. It’s been 2,5 weeks and I’m seeing no hickups or any issues so far.

You can explore the machine options and pricing for each architecture here: https://www.scaleway.com/pricing/

Great resource to learn programming Swift

If you are interested in getting started with mobile development and if you like to start with iOS, I bumped into a great resource to learn Swift. There are tons of sample projects and great video walkthroughs as well as source codes of the projects you can download from GitHub.

Lessons Page:
https://swifteducation.github.io/teaching_app_development_with_swift/

Available on iTunesU to follow lessons on mobile devices:
https://itunes.apple.com/us/course/app-development-teaching-swift/id1003406963

Sample projects’ source codes:
https://github.com/swifteducation

Mobile simulators on cloud

I had a radical switch to iPad Pro as my primary workspace and I used that set up exclusively for 6 months. As part of my day to day work, I test a lot of features and new developments on our mobile development cycle. I uninstall and re-install and replicate a lot of weird conditions on mobile environments. It’s great to do these and relatively easy to simulate these cases with real devices but when it comes to testing Android, it gets a pretty wide range of devices and hardware/software differences. Often I test the same user behavior on 5-6 devices which is very annoying.

This could be easily me doing testing 🙂

Anyway, I was in search of doing this on the actual mobile device but replicate the other hardware and software variations but in the very cloud, remote-desktop fashion. Why there is no strong service doing this more professionally? Other than testing purposes, I really want to open and want to play with a new android OS on a real device with any resolution I want to and stream that to my existing mobile device? I would love to check out some android apps on my ios device, vice versa…

I gave a try to:

  • AWS Device Farm – their browser experience is very lagging, starting up a device takes at least 4-5 minutes (why?) and there are most of the time device initialization errors.
  • appetize.io – so far, the best experience, mobile browser friendly as well, but limited virtual device variations and there is just one real device type.
  • Genymotion cloud – I haven’t got a chance to play with it since they are in their private beta.
  • Other option is to build it manually with VPN or RDP but required rooting or jailbreaking the device which is not ideal and painful to go through.

Hopefully, we’ll get there and we’ll have the option to stream apps or OSes as we do movies tv shows today…

Digital Nomads

The term “Digital Nomad” becoming more and more popular in every year within last decade, maybe more visible in last 5 years. It has become well known and accepted as more people shared their nomadic stories on their blogs.

We can say it’s more like a lifestyle change than a temporary thing for most people. There is a pattern on the personas accepted this lifestyle. They are working mostly in the tech industry, usually creates stuff, standalone or not needing constant collaboration with a team or don’t have physical dependencies (sourcing materials etc). People like sysadmins, developers, designers, digital artists…

The term “nomad” explains the lifestyle factor more than being digital because it’s all about being location independent. Working from everywhere at any time (often working all the time for entrepreneur versions). Does it sound great right? Executing is not necessarily that great 🙂

I’ve been experimenting with different elements of becoming a digital nomad in last year period. Each of the following topics below deserves a much deeper explanation but I’ll summarize them now. I’ll write about each one separately later. Continue reading “Digital Nomads”

A Beginner’s Guide to HTML & CSS

 @shayhowe sum up HTML & CSS for beginners: “A Beginner’s Guide to HTML & CSS” http://learn.shayhowe.com/html-css/

A nice presentation in 10 topics showing techniques that’s not outdated. Most of the resources you search on web about html and css, are from 90s showing very old outdated methods.

Shay Howe also started to work on “Advanced Guide to HTML & CSS”. It’s still in progress but it’s accessible as it’s available http://learn.shayhowe.com/advanced-html-css/

Integration and verification of iOS In-App Purchases

 Economy models in iOS apps use In-App purchases become very popular. Lots of developers pick iOS environment because of the flawless payments through iTunes.

If you’re planning to have a monetization model in your app, it has to go through Apple system and you have to use in-app purchases. There is no other way to accept payments from your iOS apps. There are pros and cons of using Apple in-app purchases. I’ll try to explain some of them.

The biggest con is Apple takes 30% of your sale. And another con is, there are difficulties and grayed areas in the integration of in-app purchases to your app and back-end. But the pros make all even. Because delegating whole payments to Apple is gonna affect your sales because Apple makes it so seamless that it reduces all money related steps to only one confirmation box. So it changes the purchase experience and makes it what it supposed to be. Most of the checkout or payment experiences on web, faces lots of drops because of unnecessary and boring steps like putting your credit card info, trying to give the trust to user that you’re a legitimate company and have legitimate payment system that you will not sell their info out or you won’t let hackers to pick your customer info up. All those buying experience changed in iTunes payments. So this is why you should want to integrate in-app purchases. Continue reading “Integration and verification of iOS In-App Purchases”

Profiling and optimization on Facebook PHP SDK

If you’re developing PHP based Facebook application, you might want to use (or already using) Facebook integration little more than just authentication and identification of your user. Even if you have the simplest Facebook app and using PHP SDK, you probably have regularly done API calls.

You write your app and you start to see performance issues. You start to optimize your database interactions, PHP code optimization, after you done with your application optimization if you still have performance problems it’s possibly from Facebook calls. Since you use SDK, you might not know what’s happening with Facebook communication. So you want to do profiling between your app and Facebook API servers.

You can add a basic timing profiling to your API calls to see how many calls you do, what kind of calls they are and how long they take to run.

Let’s dive in SDK, modify it a bit and start getting profiling information. Here is the actual method you need to modify in base_facebook.php file:

and we’re modifying it like this:

It simply appends a global array named “facebookApiCalls” and adds the API call details as “args” and timing as “duration”. So at the end of your page logic code, you can print this information after sorting it by duration and you can also filter to show only slow ones (for instance, the ones took over 200 milliseconds).

After this profiling you can start to identify the slow calls, also if you do same calls multiple times because of recursing, recalls etc…, you can see and optimize, combine them.

This optimization is not only a performance tweak for the user, also it will decrease the number of calls made between your server and Facebook servers.

iPhone 5 and iPad Mini’s tend to fall easier and more often

I dropped my iPad mini this morning, it somehow flipped in my hands, fell and kissed the floor from the back side. I did similar with my MacBook pro 5-6 years ago, just a week after I bought it. That’s the only device I dropped until now.

I am usually very careful with my mobile devices but except this last incident, I never dropped my stuff. I’ve been using my iPhone 5 and I dropped it 3 times in the first week. I got my iPad mini last month and it also is lighter and thinner than they were.

I commute using the subway on a daily basis and I usually read on my iPad, I wasn’t carrying my regular iPad but I started to have the new one almost every day. I use a crowded subway line in the mornings and this morning, I was hustling with the crowd to get in and after I got in, I was stabilizing my position and somehow iPad flipped in my hands and I dropped it. It was between stress moment and playing cool 🙂 Nothing happened anyway.

We used to have heavy devices usually and after last ones, I still couldn’t get used to hold them. But it’s obvious that these lighter and smaller devices tend to fall more easily and often. I see cracked screens everyday. Probably screen replacement become cheaper and easier and there are more companies providing these services, i’m assuming this is the case, even if it isn’t, it will be soon.

You may wanna check these durability videos: http://youtu.be/pMvE0lkunBg and http://youtu.be/T4kBn-GRw1M

Database Integration in PHPStorm, PyCharm or RubyMine

JetNrains released better database integration to their IDEs which applies to PhpStorm, PyCharm and RubyMine. They had database integration with some level of functionality but recently they released a video with their latest updates which is included in this post. I didn’t use database integration before in PHPStorm but i tried after seeing this video and i found it very productive and helpful.

After installing Java connectors (which you can do it with no extra effort) you’ll be good to go for connecting your database with many different database engines in your project. With database integration, you can review the structure of your database, access and manage your data and develop your SQLs with lots of cool features. These stuff are pretty standard so far, almost like a replacement of PHPMyAdmin. Nothing very new.

I found a particular connection between my code and my database very helpful, and that is, you can develop your SQL while you write your code, or you can test and run your SQL from your code without touching, copy/pasting. Also it does code IntelliSense while you write yourSQL which saves some time from mistypes and makes sql development more fun.

Check this video out for feature tour:

Source: http://blog.jetbrains.com/webide/2012/11/sql-support-and-database-tools/