Pull to refresh
314
0
Artem Loenko@dive

Software Engineer

Send message
согласен насчет удобства, но это администрации решать. во всяком случае, когда я пользовался этим методом — мне ответили в течении 5 минут и очень быстро проблема разрешилась.
вот тут Вы абсолютно правы, никто не заставляет публиковать на хабре. поэтому тенденции последнего времени превращают для многих хабр в своеобразный околоайтишный фишки.нет.
многие люди перестали писать технические статьи, делиться опытом, да и просто излагать мысли, потому что нет смысла. ради трех комментариев? один из которых «у вас запятой нет», а второй «автор — молодец!». ради кармы? не смешите, любой, кто зайдет в топ хабралюдей сразу понимает что нужно писать, чтобы быть «кармоплодовитым».
система кармы в своем нынешнем виде не отражает интересность человека, она лишь отражает отношение к нему большинства. а это не правильно. я вот, к примеру, не очень то и люблю радзинского и его стиль изложения, но уверен, что на его карму это никак не влияет и не должно.

я бы задумался об этой проблеме, пока не получилось так, что не будет и тех двух интересных статей за неделю.
на этом месте мне надоело писать, потому что я вспомнил, что это уже писали до меня раз 10.
такая возможность есть и, как ни странно, об этом написано в FAQ.
вряд ли можно написать хороший топик мотивируясь исключительно копеечной выгодой от рекламы. а вот как стимул для того, чтобы топик всё таки написать — вполне себе отличная затея.
заказной интересный топик ничем не отличается от просто интересного топика и наоборот. так что вряд ли вопрос поддержки авторов и заказные топики как то взаимосвязаны.
вы думаете на хабре нет заказных топиков?
абсолютно согласен. как бы не были ужасны прошлые «бейджи», нынешние «значки» ужаснее во сто крат.
спасибо за статью. несколько уточнений хотелось бы внести:
— в описании виджета (xml файл с параметрами <appwidget-provider>) лучше установить android:updatePeriodMillis=«0», ибо в некоторых сборках есть значение по умолчанию, т.е. принудительное обновление раз в час, а с этим параметром автоматических обновлений не будет гарантировано:

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    android:updatePeriodMillis="0"
    ...>
</appwidget-provider>

— вы не упомянули о методе onReceive(...) в AppWidgetProvider, который обрабатывает события. в вашем случае он не нужен, но существует большая проблема в версии Android 1.5, там не вызывается автоматически метод onDeleted(...) (к примеру, на очень распространенном HTC Hero), что потенциально ведет к проблемам, в вашем случае желательно этот fix применить, чтобы таки чистить систему после своей деятельности:

@Override
    public void onReceive(Context context, Intent intent) {
        // v1.5 fix that doesn't call onDelete Action
        final String action = intent.getAction();
        Log.w("onReceive() action", action);
        if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) {
            final int appWidgetId = intent.getExtras().getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
            if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
                this.onDeleted(context, new int[]{appWidgetId});
            }
        } else {
            try {
                super.onReceive(context, intent);
            } catch (IndexOutOfBoundsException ex) {
                Log.e("onReceive", ex.getMessage());
                ex.printStackTrace();
            }
        }


— в методе onUpdate(...) вы в отдельном потоке обновляете все активные виджеты, этого делать не стоит. это системный вызов и он обновит данные сам в отдельном потоке:

@Override
	public void onUpdate(Context ctxt, AppWidgetManager mgr, int[] appWidgetIds)
	{
               ...
               new Thread(new Runnable(){

			@Override
			public void run() {
				// TODO Auto-generated method stub
				for (int i = 0; i < ids.length; i++)
				{
					appWidgetManager.updateAppWidget(ids[i], buildUpdate(context, ids[i]));
				}
			}
		}).start();
		super.onUpdate(ctxt, mgr, appWidgetIds);
      ....


т.е. просто уберите new Thread(...), все будет работать как надо;

— чтобы было понятнее, вот такая конструкция с перебором ID:
@Override
	public void onUpdate(Context ctxt, AppWidgetManager mgr, int[] appWidgetIds)
	{
		final Context context = ctxt;
		final AppWidgetManager appWidgetManager = mgr;
		final int[] ids = appWidgetIds;
                ....
				for (int i = 0; i < ids.length; i++)
				{
					appWidgetManager.updateAppWidget(ids[i], buildUpdate(context, ids[i]));
				}
               ....

позволяет вызвать метод updateAppWidget для всех активных виджетов на экране, т.е. в массиве ids есть указатели на все активные виджеты и перебором вы отправляете всем им нужную команду.
профессиональные дизайнеры, верстальщики и просто старающиеся люди вас ненавидят.
[offtopic] кстати, хорошая мысль: если вы пригласили человека на хабр, то не давать ему публиковать первый топик, пока пригласивший не подскажет что не так и не поставить галку «поехали!».
не бейте. человек полчаса как хабражитель. я уже сказал ему про хабракат.
всецело согласен. а то у нас с идеями складывается ситуация «быстро спиздил и ушел — называется нашел». и тут дело даже не в авторском праве, а в простом уважении к идеям других.
и? мы же хотим тестировать наше веб приложение? или нет? а вы говорите об «ужасной тестируемости».

а для какие языки \ фреймворки подходят по вашему списку? может я чего не знаю просто.
интересная тенденция, я ночью-утром поглядывал на результаты голосования (где с пяти до семи утра) и там с большим отрывом лидировали «На себя», а как только за 8 утра перевалило — сразу вперед вырвались «На чужого дядю». перед работой значит хабр почитывают, а фрилансеры всё пишут по утрам.
пользуясь тем, что я «На себя», посплю немного. удачного вам рабочего дня.
1. отличная тестируемость: JUnit, GWTTestCases, Selenium, профилируемость: Firebug, Compile Report, SpeedTracer, спагетти-код может и присутствует, но только в уже откомпилленом варианте, который никто поддерживать в здравом уже не будет, на что тогда вообще создавать проект в GWT;
2. длительная, да. минус конечно, но вполне терпимый;
3. это руки;
4. кхм, это вы не видели как в других фреймворках это делается. если вообще возможно;
5. все могут. я, честно сказать, не сталкивался, но вполне допускаю. но это рабочие моменты и они к вопросу «использовать или нет» не относятся;
6. (:
7. это уж слишком, как по мне. да и с дизайнерами проще разговаривать. впрочем, это фичареквест больше чем недостаток. а что-то компилирует?
8. это из серии «потому что», вот у Seesmic не очень то и подтормаживает.

я, признаться честно, GWT изучаю пару месяцев и у меня есть о чем сказать в негативном ключе, но вы уж очень предвзяты. вполне допускаю, что это не идеальный фреймворк, но уж точно один из тех, на которые стоит взглянуть. а учитываю хорошую интеграцию в GAE, а значит и неплохой бесплатный хостинг + привязка к домену, так и вообще прекрасный вариант.
а я бывает даже баги правлю в Eclipse (: но всё не исправишь, да и время дороже.
недавно вот не выдержал Eclipse'овского автоформатирования html, оно просто ужасно. казалось бы банальная вещь, да и пережить её можно, но очень не хочется.
есть Ultimate Edition с 30 дневным триальным ограничением, есть бесплатная Community Edition, с рядом ограничений (вот сравнение). те, кому нужна полная версия, но они по каким-либо причинам они не могут заплатить, обычно используют EAP, предрелизную сборку, обычно очень стабильную, там тоже ограничение на использование в 30 дней, но не реже чем раз в 30 дней выходит новая сборка.
очень неубедительно. о каких костылях вы говорите? в итоге вы получаете кроссбраузерный javascript, да, пусть тяжелый, но очень функциональный и весьма расширяемый в любую сторону.
конечно же, в сайте, где хватает 3 статичных страничек, он бессмысленен. в других же случаях он вполне себе в списке рекомендуемых к рассмотрению кандидатов.
к сожалению, Community Edition не поддерживает GWT, как и многое другое.
плагин для Eclipse от Google прекрасен, но в Eclipse столько мельких и не очень недоработок, что я после очередной попытки его использовать, через полчаса сдаюсь и возвращаюсь в IntellijIdea.
вряд ли. потом путаница возникает.
раз уж IDE предоставляет инструменты для работы с библиотеками и формированием war, то почему бы ими не воспользоваться.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity