Что значит "эмулятор браузера с поддержкой видео и аудио тегов"?
Вы бот хотите написать для сайта.
PhantomJS напрямую либо через CasperJS вполне себе эмулируют браузер (фантом и есть браузерный движок WebKit - видоизмененный местами), и поддерживают даже специфический ботоводский функционал вроде загрузки файлов в input type=file, тем более без проблем аудио и видео.
Что лучше запоминается, то и берите. Там скорее именно помнить синтаксис, имена функций надо. Нежели составлять логику. И важно помнить точную версию того, подо что пишете. Скажем, Turbo Pascal 7.0, а не просто "паскаль".
Максим Грехов: > Из интернета:
Это могли бы и не копипастить, все ж таки архитектор - одна из моих профессий.
Вы мне объясните, почему Java под Android API - это НЕ низкоуровнево.
Но это вы не сможете объяснить, потому что это и не так.
> создается впечатление что вы только языком чесать мастер
Мне все равно, какое впечатление у вас создается.
Я каждый день осваиваю и делаю дофига нового. Значит, не только языком.
> ставить под сомнение сложность запуска здоровых высоконагруженных систем это бред.
Я и не ставлю ее под сомнение.
Но легкого и простого в моей жизни вообще мало. Сам выбираю соответствующую специфику.
> если ты не будешь знать какой SQL запрос написать в том или ином случае
> Разные запросы могут требовать больше памяти или больше процессорного времени или больше чтения\записи жесткого диска
И реверс-инженер, человек, привыкший все изучать максимально глубоко, сумеет изучить это не только по докам и книжкам, но заодно и экспериментально, вплоть до вскрытия потрохов СУБД.
А вот нуб, нахватавшийся вершков, может и прочтет в доках или книжках, что вот так вроде быстро, а эдак вроде медленно, и тупо запомнит это наизусть - но смысла-то не поймет.
Человек, уже работавший с протоколами TCP и HTTP (например, в рамках реверсинга бек-ендов чужих сайтов, или проприетарных протоколов на базе TCP) - понимает, в каких случаях TCP оправдывает себя, а в каких HTTP лучше.
> подумайте о том почему в вакансиях пишут
Какая разница, что там пишут? Работодатели много смыслят в программировании? Если бы это было так, то они бы не нанимали программистов от начала до конца, разве что кодеров нанимали бы, а в основном все сами делали.
Лично я вообще по жизни не хочу работать с этим людьми, поэтому я Indie от начала до конца и мне все равно, что пишут в вакансиях, лучше объясните мне насчет джавы на Android - это я послушаю.
Максим Грехов: > вкратце все дело в абстракциях
Дык Java под Android не намного более абстрагирует нас от потрохов, нежели C++ под WinAPI.
Еще раз: в первом случае мы пишем под API ОС и во втором под API ОС, это один и тот же уровень абстракции.
> но у меня почему то от этого не появляется глубоких познаний например в высоко нагруженных решениях
Значит, вы неправильно обучаетесь.
Вот я насчет высоконагруженных решений рассуждал бы так: ага, запросов к серваку будет больше, чем обычно, значит чтоб сервак не падал и не тупил, надо оптимизировать всё, что касается сервака. Может быть, то, что я сейчас сказал, кажется полнейшим бредом, пусть это полнейший бред, но факт тот, что задачу "на довольно слабом серваке держать довольно высоконагруженный сайт" я бы, очевидно, таким методом вполне себе решил, и мне бы заплатили.
А по оптимизации мне бы помогли мои глубокие знания - и навык/талант/желание реверсить всё и вся: я бы реверсил различные имеющиеся технологии, применяющиеся в высоконагруженных сайтах, и смотрел бы, где действительно все достаточно быстро работает, а где лучше бы свой велосипед написать, ибо он получился бы еще оптимальнее, чем то, что есть.
Вадим Ш.: да я-то уже разобрался, и дальше изучаю обе технологии, и до кучи что еще изучаю, такого, чего всяким хамам форумным никогда в жизни не изучить. Сниффить голый TCP учусь. А там глядишь и проприетарные протоколы (Skype, Viber...) взламывать научусь.
Максим Грехов: нет у меня гигантских проблем в терминологии.
Скорее у вас проблемы, если C++ по-вашему низкоуровневый язык.
По какому принципу вы его отнесли к низкоуровневым? Потому что на нем неудобно писать приложения? Хорошо, с этим согласен.
Но почему тогда Java у вас всегда высокоуровневая, ведь скажем Java под API ОС Android - не более удобна, чем C++ (или даже Си) под WinAPI/MFC, и уровень это один и тот же, в обеих случаях это API ОС напрямую (ну MFC чуть выше, но не суть)?
> бывают поверхостные и глубокие
И какие вы предлагаете критерии глубины познаний?
Я вот предлагаю считать более глубокими познания более низкоуровневого, что вполне логично. Чем вам это не нравится?
> Я бы погуглил, но <> гугл вообще никак не воспринимает
Гуглить - это профессия. Неплохо оплачиваемая. Как следствие, ей надо учиться. Долго. И хорошо.
Я в подобных случаях просто гуглю "delphi operators", открываю первые попавшиеся страницы и глазами или через Ctrl+F ищу именно нужный оператор.
И, при моей специфике, это иногда вообще единственный способ найти что-то нужное. Если не сказать - часто.
Вроде несложно догадаться, да? Однако...
gadfi: > ну как минимум лямды )
Фигня, вот кабы свойства...
> он не особо то и нужен
А под Android?
Нет, дело не в том, что сказанное про кривость UI не применимо к Android, оно к нему применимо Дело в том, что на Android альтернатив нет.
> но при этом я не могу взять код написанный на старом net и запустить его без бубна на новом
Вы это сами придумали? Ни разу не видел такого, а вот наоборот - много раз видел, на своем Win 8/8.1 запускал и программы первых годов нашего века. И с трудом могу себе представить такой код.
gadfi: > тот же jetbrains выдал очень достойный продукт )
Это кому как. Я на линуксе и маке не сижу и не понимаю, зачем на них сидеть, особенно на линуксе. Мне бы лучше под винду его продукты.
> всю свою историю java и c# так и делали
И какие же си шарповы решения переняла Java?
Даже WYSIWYGи для гуя и то какие-то не от мира сего, как будто их писали те, кто VS вообще в глаза не видел.
Scala - да, переняла многое либо от C#, либо от JS (кстати, JS - тоже неплохой ЯП, как видите, не такой уж я и адепт MS)
> учитывая обратную совместимость, эти решения будут с ней всегда
Увы, у C# та же проблема. Хотя могли бы просто сделать обертки поверх имеющихся классов, кто хочет пусть юзает старое, кто хочет - новое.
В идеале будущему веб-программисту стоит все написать с нуля - свой фреймворк, затем на его базе CMS.
А чтобы не было быдлокода, для этого надо освоить в идеале все возможные фреймворки и CMS, и вобрать из них лучшее.
Да, это долго, тяжело, требует таланта (без которого не понять, что же это - "лучшее"). Но это идеальный вариант.
Со временем это и нужно потихоньку сделать.
Ну а сколько из этого делать в рамках каждого проекта - это уже решать вам, смотря какие сроки и стоит ли оно того.
gadfi: > вообще странными видятся споры c# vs Java
Если бы никто не пихал Java на винду, и не собирался, прости Господи, подражать архитектуре расовых джавовских библиотек, также и C# никто бы не пытался пихать на Android где он нифига не годен, то я и не спорил бы.
> у c# сахар
Ну хоть кто-то готов хоть чуток это признать.
По архитектуре библиотек и синтаксису, увы, проигрывает. Это факт.
Но умные люди, такие, как я, делают из этого такой вывод, что надо удачные решения из .NEТ - перенять, и применять их в том числе и на Java, в своих обертках для стандартных библиотек того же андроида (которые в чистом виде невыносимы, и это нормально, на винде же все избегают Windows API, вот и прямых контактов с Android API следует избегать)
А глупые и злобные видят в этом факте и в моих словах повод для троллинга и срача.
> все, на этом существенные различия кончаются )
Главное различие - все-таки по целевым платформам. Шарп под винду, Java под Android.
LeEnot: > человек - апологет .NET и M$ просто :)
Вовсе нет.
И M$ уже не торт, и .NET зря с 2003..2010 года уже не развивается.
Только Java-то еще старше.
А если вы по используемым инструментом судите, то я тогда апологет еще и HEX-редактора, сниффера Fiddler, деассемблера OllyDbg, пассатиж, плоскогубцев, гаечного ключа, газовой горелки, паяльника, перфоратора... И дезодоранта-антиперспиранта, а то пока все перечислишь что я умею, так аж вспотеешь...
sirs: Это почему же вы так решили?
Это потому что я так вижу. А ведь я - профессиональный архитектор. Вы попробуйте обратное доказать, приведите пример кода на базе джавовских библиотек хотя бы строки в 3, а я вам расскажу, как бы это выглядело, если бы у тех самых библиотек была хорошая архитектура.
Вы вообще что хотите сделать? Navbar? Так для этого есть особый класс navbar, и иже с ним, все это адаптивное и никакой width не нужно. А то такое впечатление, что вы взяли Bootstrap, а делаете все равно свой велосипед.
Я бы в PhantomJS/CasperJS поискал, может есть такая возможность.
Всяко выглядят посерьезнее, чем всякие **monkey и прочее, что работает со стандартным браузерным движком, а не специальным
Не видел того API. Ссылку?
Именно сниффером, для HTTP/HTTPS самый удобный Fiddler, для других протоколов - Wireshark (можно на базе PCap и поудобнее сделать самому, чем Wireshark)
1) Что вы делаете с сертификатами, зачем это вообще нужно?
Никогда такого не делал. HTTPS-запросы и так нормально отправляются.
2) Качайте и ставьте сниффер Fiddler и отлаживайте. Это лучший инструмент для отладки и экспериментов с HTTP/HTTPS, для реверс-инжиниринга закрытыйх API/бек-ендов на HTTP(S).
В нем еще есть такой инструмент, как Composer, вот нужно сначала создать и отправить запрос с помощью этого инструмента (рекомендую режим Raw), а затем (получив успех) уже делать на ЯП, а если не получается - сравнивать с запросами из Composer и смотреть что не так.
Фреймворк - это набор библиотек-оберток, которые облегчают решение определенного круга задач. Для чего именно необходим фреймворк?
Если для бек-енда, идущего по HTTP (страниц, API и т.д.) то Express можно попробовать.
Вы бот хотите написать для сайта.
PhantomJS напрямую либо через CasperJS вполне себе эмулируют браузер (фантом и есть браузерный движок WebKit - видоизмененный местами), и поддерживают даже специфический ботоводский функционал вроде загрузки файлов в input type=file, тем более без проблем аудио и видео.