Decoding the *.gwt.rpc file generated as per GWT's serialization policy - gwt

I'm trying to do a bit of background reading on GWT RPC serialization policy and found that GWT whitelists the serializable types in a *.gwt.rpc file post compilation.
The following is an excerpt of one such .gwt.rpc file generated in my application:
com.subex.rocforms.sample.client.gwt.demo.PriorityModel, true, true, true, true, com.subex.rocforms.sample.client.gwt.demo.PriorityModel/3885356691, 3885356691
com.subex.rocforms.sample.client.gwt.demo.TeamModel, true, true, true, true, com.subex.rocforms.sample.client.gwt.demo.TeamModel/3447853257, 3447853257
com.subex.rocforms.sample.client.gwt.demo.dayGroup.DayGroupDateModel, true, true, true, true, com.subex.rocforms.sample.client.gwt.demo.dayGroup.DayGroupDateModel/2876933254, 2876933254
[Lcom.subex.rocforms.sample.client.gwt.demo.dayGroup.DayGroupDateModel;, true, true, true, true, [Lcom.subex.rocforms.sample.client.gwt.demo.dayGroup.DayGroupDateModel;/2086898801, 2086898801
com.subex.rocforms.sample.client.gwt.demo.dayGroup.DayGroupMemberModel, true, true, true, true, com.subex.rocforms.sample.client.gwt.demo.dayGroup.DayGroupMemberModel/471099479, 471099479
[Lcom.subex.rocforms.sample.client.gwt.demo.dayGroup.DayGroupMemberModel;, true, true, true, true, [Lcom.subex.rocforms.sample.client.gwt.demo.dayGroup.DayGroupMemberModel;/2005061951, 2005061951
com.subex.rocforms.sample.client.gwt.demo.dayGroup.DayGroupModel, true, true, true, true, com.subex.rocforms.sample.client.gwt.demo.dayGroup.DayGroupModel/2207687264, 2207687264
com.subex.rocforms.sample.client.gwt.demo.dayGroup.TimeStringModel, true, true, true, true, com.subex.rocforms.sample.client.gwt.demo.dayGroup.TimeStringModel/335976723, 335976723
com.subex.rocforms.sample.client.gwt.demo.scheduleGrid.ComponentModel, true, true, true, true, com.subex.rocforms.sample.client.gwt.demo.scheduleGrid.ComponentModel/2493196280, 2493196280
[Lcom.subex.rocforms.sample.client.gwt.demo.scheduleGrid.ComponentModel;, true, true, true, true, [Lcom.subex.rocforms.sample.client.gwt.demo.scheduleGrid.ComponentModel;/3060182407, 3060182407
Can anybody explain what the four flags quoted after the type in each row indicate?

The best answer to that, other than poking into the code of course, is reading the Brian Slesinsky's reverse engineering notes about the GWT-RPC format. Have a look under the policy file format subsection and you'll find your answer.

Related

Flutter - Jitsi Meet I want to add new options or at least modify an option

I'm trying to add new option like invite more people not by link but with a call notification.
anyone solved this issue ?? please help.
you can use feature flages like below
Map<FeatureFlag, Object> featureFlags = {
FeatureFlag.isMeetingNameEnabled: false,
FeatureFlag.isServerUrlChangeEnabled: true,
FeatureFlag.isChatEnabled: false,
FeatureFlag.isAddPeopleEnabled: false,
FeatureFlag.areSecurityOptionsEnabled: false,
FeatureFlag.isCalendarEnabled: false,
FeatureFlag.isCloseCaptionsEnabled: false,
FeatureFlag.isFilmstripEnabled: false,
FeatureFlag.isHelpButtonEnabled: false,
FeatureFlag.isInviteEnabled: false,
FeatureFlag.isLiveStreamingEnabled: false,
FeatureFlag.isLobbyModeEnabled: false,
FeatureFlag.isOverflowMenuEnabled: false,
FeatureFlag.isReactionsEnabled: false,
FeatureFlag.isRaiseHandEnabled: false,
FeatureFlag.isRecordingEnabled: false,
FeatureFlag.isReplaceParticipantEnabled: false,
};
var options = JitsiMeetingOptions(
isVideoMuted: true,
roomNameOrUrl: name,
userDisplayName: prefs.getString('username')!,
serverUrl: 'https://**********',
featureFlags: featureFlags,
);

Flutter app is crash when adding YoutubePlayer in some cases

I used youtube_player_flutter to load youtube video.But in some cases app is crash when i open the screen containing youtube video .Some time it working perfectly.
I got the below exception,
[ERROR:flutter/fml/platform/android/jni_util.cc(204)] java.lang.IllegalStateException: Platform view hasn't been initialized from the platform view channel.
Code to load youtube video ,
YoutubePlayer(
controller: YoutubePlayerController(
initialVideoId: YoutubePlayer.convertUrlToId(
controller.reelsList[index].url.toString())
.toString(),
flags: const YoutubePlayerFlags(
autoPlay: false,
mute: false,
hideControls: false,
showLiveFullscreenButton: false),
),
showVideoProgressIndicator: true,
)
compileSdkVersion 33
minSdkVersion 21
targetSdkVersion flutter.targetSdkVersion
i got the same trouble some weeks ago when i was implementing the same feature.
First, run on your terminal:
flutter clean
then
flutter pub get
then build your application again
This did the work for me,
By the way, i got some trouble with useHybridComposition making my app laggy on my physic device, so i've set it to false.
I've implemented this way, but i don't really think your code have any mistakes at all;
YoutubePlayer(
controller: YoutubePlayerController(
initialVideoId: videoModel.url,
flags: const YoutubePlayerFlags(
useHybridComposition: false,
mute: false,
autoPlay: false,
disableDragSeek: true,
loop: false,
isLive: false,
forceHD: false,
enableCaption: false,
showLiveFullscreenButton:
false),
),
showVideoProgressIndicator: true,
progressIndicatorColor:
colorScheme.secondary,
progressColors: progressColors,
),
Update me, we can discuss further if this doesn't work for you.

Is there a way to get a warning about Array.from() when using "esversion": 5 and "futurehostile": true?

Got bitten by an IE bug (yeah, we're still using the old WebBrowser control) that I thought the dbaeumer.jshint extension would help me prevent...
Is there a way to get warning when using ES6 features, such as Array.from() in Visual Studio Code?
My global settings.json file contains this:
"jshint.reportWarningsAsErrors": true,
"jshint.lintHTML": true,
"jshint.options":{
"unused": true,
"esversion": 5,
"futurehostile": true,
"jquery": true,
"browser": true,
"eqeqeq": true,
"curly": true,
"strict": "global",
"devel": true,
"-W097": true,
},
I thought "esversion": 5 would do the job, or even "futurehostile": true, but no such luck.
jshint has no issue with this line:
return Array.from(el.childNodes).slice(-1)[0].data;
(The tooltip shown for from is just any, which is suspicious, but there is nothing in the Problems panel.

Is there a way to not show invite popups in conversejs when converse is initialized as singleton in embeded mode?

I am using conversejs as client for providing a multiuser chat embeded in an html page. User might be added to a lot of groups. When a user is chating in a group and gets invite to join another group a popup is shown to accept the invite, i do not want the user to see that invitation and rather user should stay in the same group that he has opened.
Given bellow is the initialization sample :
converse.initialize({
authentication: 'login',
credentials_url: 'https://myserver.primet.com/chatapi/apiserver/api/chat/autologin/auth?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6ImFQY3R3X29kdlJPb0VOZzNWb09sSWgydGlFcyJ9.eyJhdWQiOiI2YTE1NzNkMS03ZDZjLTRkZGItYjVlYS1hZGQyZWM1MDkzZjEiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vZmNlNTAxOTUtMjMxNS00N2FmLWE2ODQtZmY5M',
auto_login: 'true',
bosh_service_url: 'https://myserver.primet.com/chatserver/http-bind/',
jid: ‘james#qachatserver.primet.com',
keepalive: true,
trusted: false,
auto_reconnect: true,
muc_nickname_from_jid: true,
auto_join_rooms: ['deal_909090390898989090909#conference.qachatserver.primet.com'],
auto_focus: false,
locked_muc_nickname: true,
show_desktop_notifications: false,
send_chat_state_notifications: false,
blacklisted_plugins: [
'converse-notification'
],
singleton: true,
muc_show_join_leave: false,
visible_toolbar_buttons: {
call: false,
spoiler: false,
emoji: false,
toggle_occupants: true
},
notify_all_room_messages: false,
notification_delay: 3000,
allow_message_corrections: 'false',
view_mode: 'embedded'
}).then(() => { setTimeout(function(){ var toggleButton = document.getElementsByClassName('toggle-occupants fa fa-angle-double-right')[0]; if (toggleButton) { toggleButton.click(); toggleButton.style.display="none"}},500);})
You can set allow_muc_invitations to false.

Pyspark Dataframe Default storagelevel for persist and cache()

P is a dataframe.
I observed below behaviour in storagelevel:
P.cache()
P.storageLevel
StorageLevel(True, True, False, True, 1)
P.unpersist()
P.StorageLevel
StorageLevel(False, False, False, False, 1)
P.persist()
StorageLevel(True, True, False, True, 1)
This shows default for persist and cache is MEM_DISk
BuT I have read in docs that Default for cache is MEM_ONLY
Pleasehelp me in understanding.
From PySpark documentation:
Note The default storage level has changed to MEMORY_AND_DISK to match Scala in 2.0.
As you can find here: Latest PySpark docs