For
a few weeks now, I have wanted to write an article about the slow-down
of old iPhones. This desire started when I was having online
conversations about it. In those conversations, many people did not
understand clearly what was happening.
Then
I went to the Apple Store to get my MacBook Pro fixed. On the way, I
discovered that my Lyft driver totally misunderstood the problem. The
final straw was that the Apple technician at the Genius Bar also did not
understand the problem.
Then
Apple announced that it was offering a $50 discount on battery
replacement for old iPhones, and I assumed that that was the end of the
matter, and that this article would be redundant.
But no, people were still saying, “Apple slowed down old iPhones to make us buy new iPhones!”
Apple did not
write iOS code that runs intentionally more slowly on older iPhones so
that people would be forced to buy newer iPhones. Apple also did not get caught red-handed by people who found that replacing their battery sped-up their old iPhones.
What Actually Happened
In
the most recent releases of iOS, Apple added an algorithm intended to
increase battery life and reduce shut-downs related to brown-outs in
phones containing old batteries. A brown-out is a sudden loss of power.
The intention of this was to improve user experience on older phones.
An
unfortunate, but somewhat anticipatable, result was that the old phones
slowed down. This slow-down was noticed by some users who then reported
it on social media. They discovered that replacing the batteries with
new ones resolved the slowdown issue.
Apple
then reported that it had added this new mechanism for managing old
batteries. Apple’s claim was supported by the reports of new batteries
fixing the problem. I also replaced my battery in my iPhone 6 Plus, and
my phone functioned at a normal speed again.
All
the evidence points to the fact that Apple was honestly trying to
improve the experience for users of older phones containing older
batteries. I imagine that it’s very hard to beta-test those battery
management algorithms because it would require lots of old phones
containing aging batteries. So Apple made a poor judgement call, and
determined that releasing an iOS that extended battery life and reduced
brown-outs on older batteries outweighed the potential, and perhaps
unquantified, device slow-down effect.
Apple
made a mistake, and when it discovered that it had made a mistake, it
was open and transparent and offered a solution: to replace the
batteries at a large discount ($50 off). Apple didn’t need to do this.
Apple had done nothing wrong. Old batteries are old and don’t work as
well, and Apple had been trying to improve the performance of those
older batteries.
If
Apple’s intention had been to simply slow down older models, it would
have been much easier to make the new versions of iOS run more slowly on
the older models, regardless of battery health. Determining the health
of the battery and slowing down based on that would have been a
completely unnecessary effort.
Conclusion
Apple
acted with transparency and integrity. Apple was clearly trying to
improve the experience on old iPhones, and it made a mistake. Yet most
people seem to have heard Apple’s message and discounted almost all of
it. Many people choose to hear only, “We slowed down old iPhones,” and
then they insert a false additional message of “because we want people
to buy the new models.”
There
is no evidence to suggest that Apple intentionally slowed down old
models to make people buy new models. It’s also extremely unlikely that
Apple would employ such a lack-mentality to business. Apple creates and
enlarges pies; Apple does not desperately grasp at existing pies. I’m
sure that Apple wants us to buy the new models, but it’s focused on
making the new models faster and richer featured.
Companies
like Apple know that it’s not worth behaving unethically, because at
some point those unethical behaviors will leak and harm the brand.
As we’re getting ready to ship your Axum earbuds next month,
we still get lots of questions from customers about the sound quality.
How’s the highs? what made your bass so good?
So I’ll try to explain in 2–3 minutes how implementing Qualcomm’s technology helped us achieve CD-Quality sound.
For those of you who’ve been living under a rock, Qualcomm is the world leader in mobile technologies.
Several years ago they’ve acquired a company from the UK that changed the game in wireless audio.
What’s so special about them?
Well, let’s just say they took the CD-Quality sound and were able to reproduce it over wireless connectivity-
Yes, I know it sounds simple but it’s quite a big problem.
As we said in the past, we’re using it in Axum and that’s 1 of our secrets.
Now
for those of you who want to get technical and learn more (I’ll be
honest with you, once the engineer told me about it I spent the night
digging into it) I’ll explain how it works:
When sending music over wireless connectivity,
it breaks as the bandwidth isn’t big enough.
So what they did?
They split those files into smaller ones,
this way you can stream it over wireless connectivity.
But the best part?
You’ll get the same wired sound quality!
As for the bass, what made it so good is:
Our custom made driver, that we’ve been testing over and over for the last 14 months
Maybe
you saw those $1 speakers that you place on your table and suddenly the
entire table starts shaking from the bass (I’ll ignore their
joy-risking horrible sound quality)? as it turns into the kind of bass
box for the speaker. Great, so one major factor with sound is the
acoustics and shape of the earbuds and that’s why we had to do so many
tests with the plastics and internal design. We knew that every 1mm
change (especially with such a small product) will have a huge impact on
the sound.
In production, like in life, there are no shortcuts.
You want to achieve the best?
You want to make an awesome product?
You want to beat the competition?
Well, in such case you’ll have to outwork your competition!
We knew the ONLY way to achieve success was to push our limits
and make another test, another prototype, another upgrade,
and when we thought “that’s it, Axum is ready…” to try another change,
another solution to make it even better.
And trust me, we wish we could make it on the first try and ship it.
But that’s the beautiful world we’re living it,
full of surprises and great rewards for those who go all-in with their goals.
These kind of things (and hundred more) is what turns Axum,
Apple
Inc. apologized to customers for software changes that reduced the
performance of older iPhones in order to extend their battery life,
while saying the company hadn’t intentionally set out to shorten the
life of the products.
Aging
batteries in the older iPhones contributed to the performance issues
after a software update about a year ago, the Cupertino,
California-based company said in a statement
posted online. In response to customer complaints, Apple said it’s
cutting the price of replacement batteries for iPhones no longer covered
by warranty.
Apple has been confronted by a slew of lawsuits over the software tweak, which had led to noticeably slower performance in iPhone 6 and iPhone 6s models. Some accused
Apple of intentionally slowing older iPhones to encourage consumers to
replace them with newer, more expensive models. The retail price of the
iPhone X, which went on sale last month, starts at $999.
“We
have never — and would never — do anything to intentionally shorten the
life of any Apple product, or degrade the user experience to drive
customer upgrades,” Apple said in the statement. “We’ve always wanted
our customers to be able to use their iPhones as long as possible.”
Apple
said it introduced the software in late 2016 because phones with older
batteries were prone to shutting down when more energy intensive
processes created greater power demands than the batteries could handle.
That fix reduced the demand on the batteries, and limited the shutdown
issue, but Apple said in recent months users found the slowness of their
iPhones had become intolerable.
Anyone
with an iPhone 6 or later will be able to replace the battery for $29
instead of the current $79 beginning in late January, Apple said. The
company also will roll out an update to the iOS operating system that
lets users see whether their battery’s condition is affecting
performance.
We
are happy to announce another huge achievement, with the release of the
much awaited ARK Mobile Wallet. That’s right, you can now vote for a
delegate, send ARK, or just check your balance straight from the palm of
your hand. No sync needed, just open the app and conduct your business.
ARK’s
mobile wallet is a hybrid application (using the same codebase for
Android and iOS which helps with coordinated development). Created using
Ionic framework and ARK’s TypeScript API to interact with the ARK network via your mobile phone, anytime, anywhere (as long as you have an internet connection).
The
ARK wallet is still in a Beta version so you might encounter some
quirks and bugs while checking it out. Give it a spin and please provide
us feedback so we can improve our wallet in upcoming releases.
The QR scanner is not compatible with ‘Ionic View — Test Ionic Apps’ so it won’t work on iOS.
This
is currently a workaround as we are still waiting on approval from
Apple (they are very strict with finance and cryptocurrency apps). When
we get final approval for the iOS App store we’ll let you know via
social channels.
Highlighted Features
Import your existing passphrase (import by QR feature or write/paste your passphrase).
Generate a new passphrase.
Encrypt access to your profile with a custom 6 digit PIN (AES256+PBKDF2).
Most transaction types are available: send, receive, vote, unvote, register a delegate.
Connects to both mainnet and devnet.
Option for additional profiles (separate profiles for different ARK addresses or networks).
Option to add contacts and easily transact with them.
Total balance of your combined ARK addresses.
Wallet backup — input your selected PIN to decrypt your wallet and gain view of your private data.
Change PIN — if you want to change your encryption/decryption PIN you can easily do so.
Clear Data — you can clear all your data from the phone (note: this will also delete all of your wallets so if you haven’t yet you should make a backup!).
Overview of network status with an option to change peer.
Current market value, along with weekly movements.
Support for showing data in different FIAT currencies.
Future
In
the upcoming months we are going to be polishing up the ARK mobile
wallet with input from ARKs community developers and users. We also aim
to integrate:
Ledger Nano S support via On-the-Go (OTG) cable/adapter.
Dark theme.
Adding
an option to add custom network types (eg. your own ARK-based chain or
for instance Kapu, Blockpool, …) just from 1 IP address — use ARK wallet
for any current or future ARK based blockchain project!
Ability to allow your fingerprint to act as a PIN to unlock your wallet (optional of course).
Notifications of receiving transactions.
Adding more localizations (you’ll be able to help in this regards to get ARK mobile wallet translated into your local language).
What does it take to be a really good web developer?
If you’re working at your first programming job, you probably found out quickly that it’s not easy.
It’s
one thing to watch coding tutorials, read programming books, and make
portfolio sites. It’s quite another to have to build websites from spec,
to meet deadlines, and most importantly, to make sure that your bosses
and clients are happy!
On
top of all that, technology changes fast. You may feel like you have to
stay on top of trends or risk becoming obsolete next year.
Want to know a secret, though? You don’t have to be afraid.
As
you keep working, you will gain experience in your job. In the same way
that you’ve learned coding, you can also learn how to perform at a high
level at work.
It’s possible to learn how to be a good web developer. And it’s even possible to be an indispensably good web developer. (Obviously I can’t guarantee your job security, but you know what I mean.)
My first job
I’m
a self-taught web developer, who never took a formal computer science
course. I’ve currently been in the field for about seven years. And of
course, I’ve struggled with the learning curve and with impostor
syndrome.
But
I’ve also picked up a lot of valuable experience and skills along the
way. You might find some similarities to my experience and your own.
When I started out as a junior web dev in my first real job, I was beyond thrilled.
But to be completely honest, I was terrified for the first two years.
Every
day I would have to do something for work that I had no idea how to
accomplish. And I often didn’t have a clue how to even get started!
I felt incompetent a lot of the time.
Thankfully
though, everything always worked out. I had really supportive
supervisors and coworkers who showed me the ropes. And I somehow met all
my deadlines.
Over time, I wasn’t feeling as stressed as before.
And
after four or five years, I actually started feeling confident in my
skills. I know five years may sound like a really long time to you.
Especially if you’re just starting out.
Just remember this:
Success will never happen overnight. But it often happens after days, weeks, months, and years of trying hard and not giving up.
I
feel like I’ve learned a lot in my own brief career. And I want to help
newbie web developers who have fought so hard to land their current
jobs.
There
are some principles that I think will help you to stand out in a crowd.
Applying them can enable you to become an asset to your company and
your customers.
And even if you’re not working yet, you can still apply most of these principles to your learning process.
Want to become an uncommonly good web developer? Read on!
#1: Understand that mastering anything is a marathon, not a sprint.
If
you’ve landed a job straight out of bootcamp or college, that’s great!
Just know that you’re at the beginning of your coding journey.
Web
development is a broad field, and like any skill, it takes a long time
to really get good at it. You have a long road ahead of you, and at this
moment, there is a lot that you don’t know.
But that’s ok! You’re a beginner. You can’t be expected to be an expert in everything right now.
Don’t
expect that you have to know everything there is to know, right this
second. It’s simply unrealistic, and it will cause you a lot of stress.
Obviously you should want to learn and get better at web development. But try to keep a bird’s eye view of your progress and be realistic about where you are right now.
Think in the long-term sense of your career, not just in the short term of this current moment. And don’t give up too early.
#2: Try as hard as you can first before asking for help.
In
those early years, the feeling of having to explore uncharted territory
was anxiety-provoking. I would feel this pressure of having to figure
something out that I just didn’t know.
Knowing when to ask for help
In
that situation, I had two choices. I could go back to my boss and say,
“Sorry, I don’t know how to do this. Can you do it for me?”
That
might have taken the pressure off in the short-term, but it wouldn’t
have been good for me in the long run. Because an employee that doesn’t
know how to find solutions will take time away from everyone else.
The
other choice would be to first do as much research as possible on my
own. Eventually I would hit the end of what I could understand.
Then
I would finally go to my boss and say, “Sorry, I can’t figure this out.
But here’s what I’ve tried so far, and I think it might be related to
this…”
See the difference?
Instead of giving up early and asking someone else to do my work for me, I did as much as I could myself.
And when asking for help, I showed that I had done some work on my own.
Learning how to teach yourself
Researching and testing on your own will help you learn how to teach yourself new concepts. This benefits you in two ways:
You’re
learning new skills on the job — essentially, you’re getting paid to
learn. You’re not sucking time away from your boss or coworkers with
questions that you could figure out yourself. You’re an asset to your
company, not a detriment.
Of
course, the other extreme is that you spend several hours or even days
stuck on a problem when you could have gotten the answer quickly by
asking for help. That’s not good either because at that point, you’re
spending too much time on the problem.
You’ll
have to figure out for yourself how much to try on your own, and when
to ask for help. But through experience, you’ll be able to find a happy
medium.
#3: Stay curious.
When
I first started my job, I frequently got positive feedback that I
soaked up information like a sponge. I was willing to try anything, even
if I didn’t know exactly how to do it. And I was honestly curious to
learn how things worked.
This desire to understand how things work is at the heart of every engineer. Let your curiosity feed that desire.
Don’t shut it off just to get things done. Understanding the why is extremely important.
If
you’re researching how to do something, don’t just stop once you’ve
found the answer in some Stack Overflow code snippet. If you’re not
pressed by an urgent deadline, take a few extra minutes to look at the
solution and how it fits in with your code.
Try
to understand why your code wasn’t working before, and why it is now.
It’s ok if you don’t understand everything 100%. Just try to grasp the
concept. Even if you don’t totally get it this time, you’ll be better
equipped to further your understanding next time you encounter the same
problem.
#4: Always be improving.
This applies not just to web development, but to any area of life: cooking, driving a car, even relationships.
Analyze and learn from your mistakes
When
you notice that something doesn’t go quite right, step back and get
some perspective. Ask yourself: what did you want to happen, and why
didn’t it happen?
If
your code broke a website, what happened, and how can you avoid it in
the future? Or if you got into an argument with a coworker while trying
to explain something, what happened there?
Try to do the following:
Go back and analyze that non-optimal situation.
Figure out what happened.
Think of actionable steps that you can take to avoid the problem next time.
It takes time, and sometimes we truly don’t have that time to go back and analyze every single decision.
But constantly glossing over mistakes and conflicts without learning from them will ensure that you will repeat your mistakes.
It’s tough to do, because when something negative has passed, the natural instinct is to not want to dwell on it.
Think
about it like debugging your life. If you keep making the exact same
mistake in your code, that would be pretty inefficient. It means that
there’s something that you need to learn so that it won’t happen
anymore.
Even
if it’s just with tiny mistakes, practicing this mixture of
self-awareness and self-improvement will reap you rewards in the long
run.
#5: Get really good at solving problems.
As
a web developer, a large chunk of your job is solving problems. Whether
you’re writing new code or debugging existing code, the end goal is to
make it do what you want.
So how can you get good at solving problems in code?
First, you have to understand exactly what it is supposed to do, and all the parts involved in the process.
Look for clues as to why the problem is happening. Then you’ll be able to solve the mystery!
Fixing a lamp
For illustrative purposes, let’s say that you have to fix a lamp that isn’t working.
In
order to troubleshoot this lamp, you have to first identify the optimal
behavior. In this case, it would be that switching the lamp to “on”
will cause the light bulb to turn on.
If this isn’t happening, you could go through and check each step in the process to determine what’s failing.
Here’s a list that you might make:
Step 1:
The electricity in the house comes through the outlet. Check that the
electricity in the house is on, and check that the outlet is working.
Step 2: The lamp is plugged into the outlet to allow electricity to travel through the lamp. Check that the lamp is plugged in.
Step 3: The electricity travels through the wire and switch in the lamp. Check that the wire and the switch are both working.
Step 4:
When the switch is turned on, the electricity reaches the light bulb
and turns it on. Check that the light bulb is working and not broken.
By testing each step, you can use the process of elimination to narrow down and identify the culprit of your problem.
Debugging: the best and worst parts of a web dev’s life
Finding
and fixing a problem in your code will be more complicated than testing
a light bulb, of course. But the process is the same.
I’m
not going to lie, debugging code and troubleshooting issues and errors
can be extremely frustrating. There have been times where I’ve spent
literally days or weeks stuck on a particular problem. These are the
worst parts of being a web developer.
However,
the flip side is that when finally discover that solution, you will
feel amazing. You might almost feel all-powerful, at least in that
moment. That feeling of exultation is without a doubt the best part of
being a web developer.
Don’t overlook the non-technical skills.
The
last two tips will be quite a switch from the topics so far. There are
some other aspects of being a professional web developer that have
absolutely nothing to do with coding.
You might call them people skills or soft skills.
People skills are just as important as coding skills
Even
though we work with code, we are ultimately working with people. The
websites and apps that we build are meant for humans. And no matter your
job, you’ll be working with human customers, clients, or coworkers.
The
best web developers aren’t just good at coding. They are also really
good at understanding the big picture, and at working with people.
I
personally think that these last two principles can really help you
pull away from the pack. They’re not easy to master because they require
a different kind of complex thinking.
And
many web developers may not consider the need to develop these
non-technical skills. This is where you can begin to make yourself
uniquely useful.
#6: Cultivate empathy towards others.
Empathy
involves being aware of and understanding of the feelings, needs, and
perspectives of others. In short, it’s the ability to put yourself in
their shoes.
It’s not about “winning”
When
my husband and I have fights, we start off both feeling at odds with
each other. I might feel like I’m 100% right — which is never the case
in real life! So we talk everything through, even though it’s painful
and difficult to do.
Eventually
we realize that it was all based on a misunderstanding or one of us had
a bad day. We’re both able to finally see the situation from the point
of view of the other person.
It’s
not about being right or “winning” the argument. It’s about being
empathetic and being on the same page as the other person.
Being empathetic at work
In the same way, when you work with people you will inevitably have conflicts or disagreements.
But
try to avoid jumping to conclusions and demonizing the other person.
Most likely anything they did or said wasn’t meant personally.
Try to talk to them and find out where they are coming from.
They
might have been really busy and simply forgotten to email you back.
They might have just had a horrible meeting and regrettably took their
stress out in you in the form of a terse reply.
Respecting others
And
beyond giving others the benefit of the doubt, empathy at work also
involves being aware and respectful of others’ workloads and situations.
Let’s
say that one of your coworkers is working like mad on a close deadline.
Don’t bother them with unrelated issues that really aren’t urgent while
they’re in crunch time.
But it might be a nice gesture to ask them how it went once things have calmed down.
On a related note, if you’re interested in reading more about workplace etiquette, I’d recommend checking out the advice blog Ask a Manager. It’s super informative about what to do and not to do in the workplace.
#7: Be proactive, not reactive.
In my opinion, being proactive versus reactive is a quality that differentiates successful people from mediocre people.
Being reactive
A
reactive employee will do the work that is asked of them, but they will
do no more than that. If something goes wrong they will fix it, but
they won’t think ahead to prevent this problem from recurring.
They
don’t consider the big picture or how interlocking parts of a system
work together. The reactive person’s default mindset is: “If it doesn’t
affect me, it’s not my problem.”
It’s
very short-term thinking. Note that they are not doing bad work, but
they are missing out on a lot that they could be doing.
Being proactive
In
contrast, the proactive employee won’t just complete their assigned
work and call it a day. They will also make small improvements as they
go.
When
something goes wrong, they will analyze what happened and make changes
so that it won’t happen again. They constantly think about how to make
processes at work more efficient.
In short, proactive people work in the present in order to improve things in the future.
They are able to see the big picture, and are willing to put forth effort to improve it.
Sounds pretty good, right?
To
learn the skill of being proactive, you’ll have to use some trial and
error, and a lot of observation. But once you figure it out, the
benefits will spill over into other areas of your life.
In closing
Thanks
for reading these tips on how to be a good web developer! If you’re a
newbie web developer, I really hope that you’ve found some of them
helpful.
If you want a nice printable version of the above list, you can pick one up here.
If you are considering a smartphone in the new year, then we are giving them a best choice of the phone. E-commerce website is getting a discount of Rs 9010 on the iPhone 8's 64GB variant on Amazon. You can buy this Rs. 64000 phone from Amazon at Rs. 54,999.
On the 32GB variant of the unseen iPhone SE, there was also a discount of 8 thousand rupees. After the discount, it was being sold at Rs. 17,999. However, the price of this phone has now been reduced to Rs 18,999. Customers can buy Apple iPhone 8 in space gray, gold and silver color variants.
Apple has made several improvements in September with an 10th anniversary, iPhone 7 with iPhone X and iPhone 7 Plus in an event in California. In the iPhone 8 and iPhone 8 Plus, there is a new design with a front and back glass.
The iPhone 8 and iPhone 8 Plus have a 12-megapixel rear camera, as well as a dual camera setup in the iPhone 8 Plus. It also has a 12-megapixel telephoto camera. It has the best features for video recording.
You invest a lot of time in your blog, making sure it fits your personal
brand and style. And a big part of making it your own comes from what
you call it and where it lives. Blogger has long let you host your blog
on a custom domain, so that you can give it any URL you choose. To make
that process even easier, starting today, we’re integrating Blogger
directly with Google Domains, allowing you to purchase a custom domain for your blog right from Blogger with just a few clicks.
If your blog is itching for a new home, you can grab one via Google
Domains by popping open Blogger and heading to the Publishing section of
your blog’s Settings tab.
If you purchase a new domain from Google Domains, it’s also easy to create a new blog for that domain right there.
Interested in learning more about Google Domains? Read on.
Hardik Gandhi is Master of Computer science,blogger,developer,SEO provider,Motivator and writes a Gujarati and Programming books and Advicer of career and all type of guidance.