Last weekend, I read a post on Reddit where /u/TeckFire claimed that his iPhone 6s became much faster again after replacing the battery. A new iPhone 6s should get a score of ~2300 on the Single-Core benchmark and ~3900 on the Multi-Core benchmark of Geekbench 4. The poster saw scores of 1466 and 2512 respectively. After getting the battery replaced, the phone was restored to full speed again. The explanation was that as the battery degrades, the iPhone reduces the clock speed to extend the battery lifetime. I decided to figure out if my phone was affected by that as well.
Author Archives: Daniel Hepper
MicroConf Europe 2017 Recap
Last week I attended the MicroConf Europe 2017 in Lisbon, Portugal and spent two days and three evenings listening to interesting talks and having inspiring conversations. MicroConf is a conference targeted at small, self-funded software companies. The audience consists of people at different stages of founding and running a company: some are looking for an idea, some are just starting out and others have a company they want to grow. MicroConf is hosted by Rob Walling and Mike Taber, which you might know from the Startups For the Rest of Us podcast. I just listened to the latest episode of the podcast where Mike Mike and Benedikt Deicke looked back on the conference, so I decided to write a small recap myself. Continue reading
Zero To One
For a quite a while, the book Zero to One by Peter This (with Blake Masters) has been covering dust in the “to-read” section of my bookshelf. That would probably not have changed, had I not discovered the Business Book Club Cologne on Meetup.com. I liked the idea of the meetup and as chance would have it, Zero to One was the book that was discussed at the inaugural meetup, so I finally had a good reason to read it. I kind of rushed through the book to finish it in time for the meetup, but I was so impressed by the notes other folks had taken, so I decided to give it a second read and take some notes and form a better opinion, which I want to share here.
30 Day Experiment #1: kill the snooze button with 30 within 30
While slacking off doing research on the internet recently, I stumbled upon Raptitude.com, where David Cain writes about getting better at being human. One thing that intrigued me were his self-improvement experiments. He did a total of 22 experiments, with objectives like going vegan for 30 days or following a specific workout regime for 6 weeks. I really liked that idea and decided to that myself someday. That day is today.
Continue reading
Knee pain when running in the cold
I’ve been running for about 18 years now, and knee pain was a regular companion throughout my running career. After finishing the Ironman in 2012, the pain was so bad that I was seriously considering giving up running. Luckily this could be averted, and I have been running mostly pain-free since 2013 thanks to lasers and an impulse purchase on Amazon. But that is a story for another day. Today I want to talk specifically about knee pain when running in the cold. Continue reading
Introducing ConsiderateCode.com
For the last 8 years, this blog has been my primary outlet whenever I had the urge to share some written worlds with the world. This resulted in a hodgepodge of 44 articles covering a wide range of topics: technical articles related to my work as a consultant and software developer, as well as personal stuff like my nerdy side projects and my passion for everything fast.
I’ve decided to give my technical writing a new home: ConsiderateCode.com
You might wonder, why even bother? Truth be told, nobody ever complained that my blog isn’t focused enough. Probably because they forgot what the last post was about, because on average more than two months did pass between posts.
The key to building an audience is to write consistently about a well defined topic. That’s what I am planning to do on ConsiderateCode.com
So if you are interested in Django, Python and software development in general, go check it out and subscribe to the mailing list to get notified of new articles and stuff I work on.
But beware! At some point, I will launch some kind of product and there is a high probability that you will buy it because it will solve a painful problem for you and I have demonstrated my expertise with my technical writing. Sounds like a plan, right?
Frankly, I have no idea yet what this product might look like. For now I focus on writing something helpful on a regular basis.
I will document my journey to product income on this blog, so if you want to see how my grand masterplan works out, just keep this tab open. A slightly more convenient way to stay updated would be to follow me on Twitter.
Selling Python
On the first day of Python Unconference Hamburg 2015 I moderated an open discussion about how to convince customers and employers that Python is a good choice for their upcoming project. Here are some takeaways from the discussion that I want to share.
Continue reading
Why you need a security@ address
If you run any kind of webservice, you should set up a security@yourdomain.com email address, display it prominently on your website and make sure it gets read by an employee with a technical background.
Not convinced? As a case study, check out this post on HackerNews. The OP said he had tried to report a security vulnerability at a messaging and voice services provided, but nobody would listen to him.
The suggestions ranged from full-disclosure to emailing the CTO. I pinged the official Twitter account of the company with a link to the thread, but they brushed it off. Ironically, the company even advertises their service as a security solution on their Facebook page.
After about two hours, a member of the ops team finally chimed in on HackerNews and the issue got addressed. A little later, they also got back to me via Twitter. But the damage was done: people started telling stories of unrelated bad customer service experiences and one person said they are going to evaluate a competitor.
With a security contact prominently visible on the website, the whole thing could have been avoided.
.local domains and Mac OS X 10.10 Yosemite
TL;DR: sudo discoveryutil mdnsactivedirectory yes
After upgrading to Mac OS X 10.10 Yosemite, I found myself unable to access any hosts with a domain name ending in .local
I could resolve the hostname with DNS tools like dig and nslookup, but other tools, namely ssh and ping, refused to do so.
As it turns out, Yosemite (and apparently also iOS 8) changed the way of resolving host names ending in .local to conform to the relatively new RFC 6762.
After much digging I found a fix in theĀ Apple support forums:
sudo discoveryutil mdnsactivedirectory yes
Note thatĀ this fix only lasts until the next reboot.
Fixing 1_6.W001 when upgrading from Django 1.5 to 1.7
After upgrading a Django project from Django 1.5 to the current beta of Django 1.7, running the tests triggered a warning:
System check identified some issues: WARNINGS: ?: (1_6.W001) Some project unittests may not execute as expected. HINT: Django 1.6 introduced a new default test runner. It looks like this project was generated using Django 1.5 or earlier. You should ensure your tests are all running & behaving as expected. See https://docs.djangoproject.com/en/dev/releases/1.6/#discovery-of-tests-in-any-test-module for more information.
This warning is printed by the System Check Framework, which is new in Django 1.7 and checks your project for common problems. You can run it manually with the “check” management command.
python manage.py check
After verifying that all my tests are run, I was left wondering how I can silence the warning after reading (okay, let’s be honest: skimming) the release notes of 1.6. The answer is simple, but I had to look in the source of the system check framework to find it. Apparently you have to explicitly define a test runner starting from Django 1.6. To do so, add the following line to your settings:
TEST_RUNNER = 'django.test.runner.DiscoverRunner'