koshak
I delegated the fine tuning and customization to a third party once I realized I don’t have time for it anymore.
I am fine with it although it is not ideal and there is room for improvement. There is always some. Everywhere.
Please ping me from future when Linux (or Fuchsia or whatever is there in the second half of 2020s) is capable of that as well and there are vendors/providers who are honest, dependable and trusted who I can allow to store my data, identity and privacy and have good sleep.
Cheers.
The only font designers who care about clear distinction of symbols are those who create fonts for coders
Simple clarity test:
Il10O
All 5 chars should have clear distinction. Otherwise the font is shit.
The truth is: 1. No one cares 2. Choose one of two and stick to it 3. Care to maintain a redirect from the second option to the chosen one.
Cheers!
>Sie können ganz einfach einzelne Einträge oder ganze Themenbereiche löschen. Außerdem können Sie in den Einstellungen festlegen, welche Daten mit Ihrem Konto verknüpft werden sollen.
In two out of three occurrences I read "Sie" as "They" )) Fun!
2. '{}'.format(). besides, print is a function
3. python versions you use as a ref in your book were released more than 5 years ago. All major projects have dropped support for them in favor of python 3.3+. Today it is difficult to find a project that doesn't support python3. There's not so much diff between py3.4 and py2.7. What is frustrating?
4. Occam's razor and K.I.S.S. tell me keep my stack as small as I can. Beginners better learn right principles than "easiness". Show them what's really effective. Programming is 95% mental work, 1% coding, 4% testing/debugging/optimizing. Teacher cannot inject knowledge into student's mind, but he can show the right direction and help make first steps.
5. comprehensions are idiomatic. context managers are idiomatic. Begin from the beginning. Begin from "import this".
6. well, yes. Your "they will learn that later" mantra is one of them.
I ditched the idea that learning programming begins with choosing a language and learning its basics. Instead you go learn KISS, DRY, YAGNI, etc., history of programming languages, stateful vs stateless, and learn this by practice, by exercise, just like playing the guitar. You begin with handling the instrument the right way and learning basics of music theory and once you get the idea of pentatonic scale and bebop you can go practice it, not vice versa. Well, you can play bebop in pentatonic and not be aware of what you're doing, but understanding the underlying theory and alternative approaches is the key to learning more complex things and discovering new horizons.
Relearning is a bad habit. Reusing your knowledge and expereince is a good one.
Later on I was taught some C and x8086 assembly. I needed to forget Pascal. But I didn't get C.
Then I was introduced to OOP and C++ and was pissed off. I needed to forget procedural programming (at that time I didn't even know it was called that). But I didn't get it.
When I started to learn Python I dove deep in its OOP, data model, magic methods, functools, itertools, datatypes, any "writing idiomatic" and "top mistakes python programmers make" articles. When I didn't understand something (and it was a lot!), I walked to read theory about programming approaches, duck typing, functional programming, Guido disgusted by functional programming, difference and tragedy of py2/3 dichotomy, by the way learning a lot about programming, design patterns, computer science and history of all of that.
When I started all my knowledge about programming before learning python this way was just buzz words and almost no real experience.
But learning python this way - the hard way - allowed me to learn programming, its theoretical concepts. When I got stuck with something, I just hadn't move on till I understood everything the right way.
Where do you teach your readers to think right?
Python 2.6.5
no use of context managers when working with files
no use of format when working with text formatting and output
"Avoid any project that mentions "Python 3""
"Every if-statement must have an else"
no list|dict|generator|set comprehensions.
no idiomatic hints
no gotchas.
Definitely a hard way.
Having learnt wrong leads to hard learning to do right.
My native language is Russian. I can understand and speak Ukranian, Belorussian, Chech, Serbian. Just because they have a lot in common. And vice versa. But not always...
Well the only rule to succeed as already mentioned is to dive into language. People who move to other countries usually learn to speak foreign language within several months.
But as far as we live in Internet you can learn whatever you want without actually moving. Every day we read thousands of sentences and 10s thousands of words. You can read the same in the language you want to learn. Facebook, twitter, google, newsfeeds, search for the information you want in the language you want to know and read articles.
The more you read the more you learn and soon you'll be able to form your phrases. As soon as you can form phrases and understand what you read without searching every word in dictionary, you're ready to dive into grammar. Learn grammar as fast as possible now. That's the hardest and the most exhausting part of my method, but it is obligatory. Learn rules, draw tables with tenses, declension rules and so on. Find grammar exercises and do them all. Thus you train your brain to form phrases the right way, to spell the right way.
Next part is fun part - pronunciation. It's fun because in real life you sometimes can't understand your neighbour, and dialects divide your country to sort of "language provinces". In russian language there's no English sound "th". It transformed to 'f'(Theodor - Федор) and 't' (thriller - триллер). So placing tongue between teeth is a hard but funny part for newbies. It's also funny to learn to pronounce 'r' in German, English and French. You will learn a lot about your tongue and jaw.
Last part is a "separate thread" part because learning new words is a constant process. Sometimes it's also a funny part. For example in chech the word hallway(chodba) is pronounced exactly like russian word ходьба (walking) and german 'Herr' (Mr.) is pronounced like russian 'penis', so "Herr Ivanov, sitzen Sie bitte" sounds funny. And spanish 'huesos' (bones) is the transliteration of 'хуесос' (dicksucker). Apart from that there are a lot of words common for all european languages.
That's what I do. It's a slow and silent method for learning foreign language on your own. It's like progressive jpeg. The harder you work the better the result. But every next language is learnt faster than previous.
It's the greatest diplomatic failure to push dumb poor people to power. Hi there, western polittechnology! Look at Egypt, Libya, Tunisia, Ukraine(so-called "orange revo" in 2004 and now - just the same) Promote quasi-democracy and push the weak leader to power. You'll get unstabilized entity, unable to produce any decent products or services and... just.. repeat when it seems to get a little stronger than needed?!
If you want a real success story, read the fucking history of http://en.wikipedia.org/wiki/October_Revolution Well that's the real deal. Just this for instance: "The Russian Empire, which had withdrawn from the war in 1917 after the October Revolution, lost much of its western frontier as the newly independent nations of Estonia, Finland, Latvia, Lithuania, and Poland were carved from it. Romania took control of Bessarabia in April 1918."
$ python
Python 3.3.3 (default, Nov 26 2013, 13:33:18)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import timeit
>>> timeit.repeat('for i in range(100): i**2', repeat=3, number=100000)
[4.451958370991633, 4.446133581004688, 4.4439384159923065]
>>> timeit.repeat('for i in range(100): pow(i,2)', repeat=3, number=100000)
[5.343420933000743, 5.341413081012433, 5.3455389970040414]
>>> timeit.repeat('for i in range(100): i*i', repeat=3, number=100000)
[0.8348780410015024, 0.8323301089985762, 0.8313860019989079]
$ python2
Python 2.7.6 (default, Nov 26 2013, 12:52:49)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import timeit
>>> timeit.repeat('for i in range(100): i**2', repeat=3, number=100000)
[0.9710979461669922, 0.9630119800567627, 0.9619340896606445]
>>> timeit.repeat('for i in range(100): pow(i,2)', repeat=3, number=100000)
[1.7429649829864502, 1.7306430339813232, 1.729590892791748]
>>> timeit.repeat('for i in range(100): i*i', repeat=3, number=100000)
[0.6579899787902832, 0.6526930332183838, 0.6540830135345459]
$ python -m timeit '"-".join(str(n) for n in range(100))'; python -m timeit '"-".join([str(n) for n in range(100)])'; python -m timeit '"-".join(map(str, range(100)))'
10000 loops, best of 3: 49.4 usec per loop
10000 loops, best of 3: 40.6 usec per loop
10000 loops, best of 3: 32.8 usec per loop
$ python2 -m timeit '"-".join(str(n) for n in range(100))'; python2 -m timeit '"-".join([str(n) for n in range(100)])'; python2 -m timeit '"-".join(map(str, range(100)))'
10000 loops, best of 3: 30.2 usec per loop
10000 loops, best of 3: 25 usec per loop
10000 loops, best of 3: 19.4 usec per loop
$ uname -rom
3.12.6-1-ARCH x86_64 GNU/LinuxFor all the others. The article is not BS. It's a good attempt to troll on the old myth.
The trend of today is sticky headers. Tomorrow it will look rediculuous. Is it tech? No. It's the matter of fashion.
Do this stats make any sense at all?
Rephrase: can anyone count positive effect of the articles mentioned on HN and further discussions to them?