LINUX.ORG.RU
ФорумJob

Ищу работу джуном (python) в Москве.

 , , ,


1

2

Добрый день.
Начинающий программист ищет постоянную работу в Москве.
Сделал тестовый проект для учебы на голом Flask и Postgresql. https://github.com/master-dilly/learn-python
На http://exercism.io больше половины задач решил, если это имеет значение.
Готов много учиться.

Кто заинтересован, пишите на masterdilly at airmail.cc.



Последнее исправление: masterdilly (всего исправлений: 1)

опыт получить и сбежать не планирую

планируешь сбежать, неполучив опыта?

на самом деле, мне думается, что надо держать такие вещи при себе, потому что до конца своих дней ты вряд ли будешь там работать, а как скоро найдешь другую работу — зависит от работодателя примерно на столько же, насколько от самого сотрудника, если не больше.

Novel ★★★★
()

Закинул PR с поправкой code styl'а в server.py. Рекомендую присмотреться к PEP8 и хотя бы пользоваться autopep8 (если редактор сам не умеет его вызывать).

Сам код не проверял и не запускал.

deterok ★★★★★
()

Лучше оформи резюме маломальское, напиши в каких проектах уже успел поучавствовать (я во время института всякую всячину прогал, даже деньги за это как-то раз получил :)). Ну и потыкайся по фирмочкам.

deterok ★★★★★
()
Ответ на: комментарий от deterok

Я нигде не участвовал. Я системным админом был. Хочу сменить деятельность. А по фирмам в любом случае...

masterdilly
() автор топика

Я вебом не занимаюсь, но посмотрел на upload.py и могу сказать что это там жесть.

  • hash и file переменные
  • save_media и save_img почти одинаковы
  • А return None это вообще «вишенка на торте»

В общем тебе ещё учится, учится и учится.

Rodegast ★★★★★
()
Последнее исправление: Rodegast (всего исправлений: 1)
Ответ на: комментарий от Rodegast
def allowed_file(filename, extension):
    return '.' in filename and \
        filename.rsplit('.', 1)[1].lower() in extension

Серьезно?)
Много повторений, например:

ext = '.' + file.filename.rsplit('.', 1)[1].lower()

noname_user ★★★
()
Последнее исправление: noname_user (всего исправлений: 2)
Ответ на: комментарий от Rodegast

В общем тебе ещё учится, учится и учится.

о да, кое-кому поучитЬся не помешает

targitaj ★★★★★
()
Ответ на: комментарий от noname_user

Серьезно?)

Вполне

def save_img(file):
    if file and allowed_file(file.filename, ALLOWED_IMG):
        filename = secure_filename(file.filename)
        ext = '.' + file.filename.rsplit('.', 1)[1].lower()
        hash = hashlib.md5(file.read()).hexdigest() + ext
        file.seek(0)
        os.mkdir(os.path.join(UPLOAD_IMG, hash[:2]))
        file.save(os.path.join(UPLOAD_IMG, hash[:2], hash))
        return (os.path.join(hash[:2], hash), filename)
    return None


def save_media(file):
    if file and allowed_file(file.filename, ALLOWED_MEDIA):
        filename = secure_filename(file.filename)
        ext = '.' + file.filename.rsplit('.', 1)[1].lower()
        hash = hashlib.md5(file.read()).hexdigest() + ext
        file.seek(0)
        os.mkdir(os.path.join(UPLOAD_MEDIA, hash[:2]))
        file.save(os.path.join(UPLOAD_MEDIA, hash[:2], hash))
        return (os.path.join(hash[:2], hash), filename)
    return None

def save_media_test(file):
    if file and allowed_file(file.filename, ALLOWED_MEDIA):
        filename = secure_filename(file.filename)
        os.mkdir(os.path.join(UPLOAD_MEDIA, filename[:2]))
        file.save(os.path.join(UPLOAD_MEDIA, filename[:2], filename))
        return (filename[:2], filename)
return None

Rodegast ★★★★★
()
Ответ на: комментарий от Rodegast

А я не отрицаю. Только вот картинки писались в static, а файлы в другое место, сервер их потом не отдавал. Пришлось смотреть разбираться. flask, download files Много для новичка неявных моментов. Ну так на то и новичек. А «вишенку» брал с примера, где автор (мне понравился - https://www.youtube.com/watch?v=YBn6L-h1PMI&index=3&list=PLuZfoSIficQ... это использовал.

Такое...

masterdilly
() автор топика
Ответ на: комментарий от Rodegast

Подумал, Вы правы. Надо привести в нормальное состояние. Спасибо всем за советы. Буду решать.

masterdilly
() автор топика
Ответ на: комментарий от masterdilly

Если скучно станет, то можешь обратить внимание вот на эту строчку:

hash = hashlib.md5(file.read()).hexdigest() + ext
В ней явный косяк. Если не понятно какой, то попробуй закачать файл размером гигабайт в 10...

Rodegast ★★★★★
()
Ответ на: комментарий от Rodegast

Я выносил в отдельную функцию, читал блоками по 65500. Видно было на глаз задержку. Отказался, вписал пока так. Далее, я запретил кодом app.config['MAX_CONTENT_LENGTH'] = 100 * 1024 * 1024 закаяку более 100Мб. Если есть ещё косяки, с уважением выслушаю. На данный момент всё привожу в «как надо» и «нормально читаемый код».

masterdilly
() автор топика
Ответ на: комментарий от masterdilly

Я выносил в отдельную функцию, читал блоками по 65500. Видно было на глаз задержку

Когда я делал подобную функцию, то задержка была примерно 15сек на файле размером 1.6 Гиб. Что вполне нормально.

Далее, я запретил кодом app.config['MAX_CONTENT_LENGTH'] = 100 * 1024 * 1024 закаяку более 100Мб.

Но ты не учёл то что Python на Linux-е не отдаёт память системе, а тратить 100Миб только на контрольную сумму это как-бы много.

Rodegast ★★★★★
()
Ответ на: комментарий от Rodegast

Ну, я приуныл, когда на глаз добавление песни 15Мб на локальном компьютере было видно. Вот и убрал. В «боевых» условиях много тривиальных задач становятся другими. Как писали где-то в нете: «Вы думаете, что вашим ресурсом будут пользоваться 100 человек, никак не 10 000...».

masterdilly
() автор топика
Ответ на: комментарий от Rodegast

И да, код переделываю, можете посматривать (оно, конечно, никому не надо, но вдруг).

masterdilly
() автор топика
Ответ на: комментарий от Jopich1
@app.route('/addAlbum', methods=['GET', 'POST'])
def addAlbum():
    if 'userID' in session:
        userid = session['userID']
    else:
        userid = ''
        return redirect('login')

эту порнографию можно запихнуть в декоратор

Jopich1
()
Ответ на: комментарий от Jopich1

Пока голый, дальше хоть Django. По декораторам - спасибо, сделаю. Связи хорошо, правильное построение БД - целый пласт. Я думаю, для учёбы пойдет, но если прямо напрашивается изменение, приведите пример, где бы неплохо применить join. Если можно, то кратко и почему. Я учусь, за любую критику поклон.

masterdilly
() автор топика
Ответ на: комментарий от Rodegast

Python на Linux-е не отдаёт память системе

Можете мне объяснить, почему у меня VSZ и RSS у этого быдло-скрипта растет, потом падает до одинаковых значений? Или это не отдает?

f = open('dict.txt', 'w')
for _ in range(10):
	auto = []
	for _ in range(1000000):
		temp = ""
		for _ in range(random.randint(3, 10)):
			temp += random.choice(string.ascii_letters + string.digits)
		temp += "\n"
		auto.append(temp)
		f.write("".join(auto))
f.close()

Deleted
()
Ответ на: комментарий от Deleted

почему у меня VSZ и RSS у этого быдло-скрипта растет, потом падает до одинаковых значений? Или это не отдает?

Запустил твой быдло-скрипт и ничего неожиданного не увидел. Вот можешь доклад чела про память посмотреть, может он тебя убедит, если мне не веришь. https://www.youtube.com/watch?v=D0vbuIDOV4c

Rodegast ★★★★★
()
Ответ на: комментарий от Rodegast

Посмотрел, приуныл. На скриптовом языке он за байты говорит... Go на него нет. Короче, унылое видео. По возвращении памяти - от версии к версии все немного меняется. Надо тестировать.

masterdilly
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.