1. Cache invalidation 2. Naming things 3. Off-by-one errors 4. “Back” button 5. Smooth scroll 6. Remembering scroll position 7. Smooth web animations 8. Sound in a video conference 9. Email layout 10. Aligning text next to the icon
[1/4]
11. File paths with spaces 12. Remembering “Remember me” 13. Not writing yet another package manager 14. Logging in Java 15. Managing dependencies 16. Building programs 17. Text selection in PDF 18. Estimating time in progress bars 19. Not stealing focus
[2/4]
20. Writing to a file (reliably) 21. Parsing XML (reliably) 22. Switching video modes in Windows 23. Looking for the path where Visual Studio was installed 24. Remembering which monitor window should open on 25. Syncing files in iCloud 26. Smooth window resizing
[3/4]
27. Pairing Bluetooth headphones 28. Color spaces 29. Text input 30. Text output 31. Printers. Everything about printers 32. Exiting vi 33. Editing tweets 34. Time zones
[4/4]
• • •
Missing some Tweet in this thread? You can try to
force a refresh
It took the total of 5 recruiters to arrange the interview. Yep, literally, 5 (!) different people talked to me so far.
Time-wise it took ~30 days
This was the third time I’m applying to Google, still, they make me go through the screening call.
Why? Screening is supposed to be a very rough filter to check the lowest bar. It’s fine once, but why force it every year on the people you know have already passed it?
Emoji are the biggest innovation in human communication since the invention of the letter 🅰️.
Curious how they work under the hood? 🧵👇
As you might know, all text inside computers is encoded with numbers. One letter—one number. The most popular encoding we use is called Unicode, with the two most popular variations called UTF-8 and UTF-16.
Unicode allocates 2²¹ (\~2 mil) characters called codepoints. Sorry, programmers, but it’s not a multiply of 8 🤷. Out of those 2 million, actually defined are \~150k characters.
“Performance is a feature that enables using a tool in robust ways. When actions are instantaneous, users will use them more.“
“breaking backwards compatibility should be done rarely. [...] significant, clear benefits should exist and no reasonable way to maintain compatibility”
“The interface should be uncluttered, to the point, and consistent. Putting everything as a button, icon or tab can be as much of a detriment as having nothing visible. When many different things beg for the user’s attention, they start becoming noise.”
“[upside] to owning so much of our stack is that we can often tweak and fix things that are out of practical reach of other projects. We have no large open source projects we need to convince that our feature is worth the implementation. We can make that decision ourselves.”
Вот вам мой тред по осознанному потреблению для программистов. Тред ↓
Старайтесь не заводить объектов, отвечающих только за одну функцию. Каждый объект должен выполнять хотя бы две-три функции, в идеале пять-шесть. Это поможет вам сократить количество необходимых объектов.
Вместо обновления библиотек на новые версии попробуйте обходиться теми, что у вас уже есть. Например, поставьте себе задачу не обновлять и не добавлять новых библиотек в проект в течение года.
Very interesting case study in 5 parts when a man tries to implement a sudoku puzzle but got overwhelmed by TDD and OOP and haven’t got any tangible result except “board representation” ravimohan.blogspot.ru/2007/04/learni… (first five links)
I was ready to bet he’s just a junior getting familiar with Ruby but turned out he’s Ron Jeffries, one of the founders of eXtreme Programming. Here’s what he thinks of himself
What’s the takeout? Don’t get stuck in the design too much I guess. Whatever works, get to the meat as quick as you can, improve later if needed. Also: methodologies, TDD and OOP won’t replace thinking about the problem at hand