• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 17:40
CET 23:40
KST 07:40
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
SC2 All-Star Invitational: Tournament Preview5RSL Revival - 2025 Season Finals Preview8RSL Season 3 - Playoffs Preview0RSL Season 3 - RO16 Groups C & D Preview0RSL Season 3 - RO16 Groups A & B Preview2
Community News
BSL Season 2025 - Full Overview and Conclusion6Weekly Cups (Jan 5-11): Clem wins big offline, Trigger upsets4$21,000 Rongyi Cup Season 3 announced (Jan 22-Feb 7)16Weekly Cups (Dec 29-Jan 4): Protoss rolls, 2v2 returns7[BSL21] Non-Korean Championship - Starts Jan 105
StarCraft 2
General
Stellar Fest "01" Jersey Charity Auction SC2 All-Star Invitational: Tournament Preview Weekly Cups (Jan 5-11): Clem wins big offline, Trigger upsets When will we find out if there are more tournament SC2 Spotted on the EWC 2026 list?
Tourneys
SC2 All-Star Invitational: Jan 17-18 Sparkling Tuna Cup - Weekly Open Tournament SC2 AI Tournament 2026 $21,000 Rongyi Cup Season 3 announced (Jan 22-Feb 7) OSC Season 13 World Championship
Strategy
Simple Questions Simple Answers
Custom Maps
Map Editor closed ?
External Content
Mutation # 509 Doomsday Report Mutation # 508 Violent Night Mutation # 507 Well Trained Mutation # 506 Warp Zone
Brood War
General
BW General Discussion [ASL21] Potential Map Candidates BGH Auto Balance -> http://bghmmr.eu/ Video Footage from 2005: The Birth of G2 in Spain BSL Season 2025 - Full Overview and Conclusion
Tourneys
[Megathread] Daily Proleagues [BSL21] Non-Korean Championship - Starts Jan 10 Small VOD Thread 2.0 Azhi's Colosseum - Season 2
Strategy
Soma's 9 hatch build from ASL Game 2 Simple Questions, Simple Answers Game Theory for Starcraft Current Meta
Other Games
General Games
Stormgate/Frost Giant Megathread Beyond All Reason Awesome Games Done Quick 2026! Nintendo Switch Thread Mechabellum
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread Canadian Politics Mega-thread European Politico-economics QA Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
Anime Discussion Thread [Manga] One Piece
Sports
2024 - 2026 Football Thread
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List
Blogs
My 2025 Magic: The Gathering…
DARKING
Physical Exercise (HIIT) Bef…
TrAiDoS
Life Update and thoughts.
FuDDx
How do archons sleep?
8882
James Bond movies ranking - pa…
Topin
StarCraft improvement
iopq
Customize Sidebar...

Website Feedback

Closed Threads



Active: 2358 users

The Big Programming Thread - Page 959

Forum Index > General Forum
Post a Reply
Prev 1 957 958 959 960 961 1032 Next
Thread Rules
1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution.
2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20)
3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible.
4. Use [code] tags to format code blocks.
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
May 15 2018 04:16 GMT
#19161
I have a task in my Android app that needs to run asynchronously. It contributes to the UI and requires context(needs an object from the Application). Do I use an AsyncTask, Fragment, or something else?
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
berated-
Profile Blog Joined February 2007
United States1134 Posts
Last Edited: 2018-05-15 11:07:27
May 15 2018 11:06 GMT
#19162
On May 15 2018 13:16 WarSame wrote:
I have a task in my Android app that needs to run asynchronously. It contributes to the UI and requires context(needs an object from the Application). Do I use an AsyncTask, Fragment, or something else?


I personally always thought the fragment thing was a hack. We ultimately use loaders for this type of stuff, but async task can work. You just need to make sure that when the async task runs on the main thread that you realize the activity that started it could be destroyed.

Disclaimer most this information is from Android 2 years ago, don't know if they have new options but that looks like the same stuff.
Acrofales
Profile Joined August 2010
Spain18191 Posts
May 15 2018 11:15 GMT
#19163
On May 15 2018 20:06 berated- wrote:
Show nested quote +
On May 15 2018 13:16 WarSame wrote:
I have a task in my Android app that needs to run asynchronously. It contributes to the UI and requires context(needs an object from the Application). Do I use an AsyncTask, Fragment, or something else?


I personally always thought the fragment thing was a hack. We ultimately use loaders for this type of stuff, but async task can work. You just need to make sure that when the async task runs on the main thread that you realize the activity that started it could be destroyed.

Disclaimer most this information is from Android 2 years ago, don't know if they have new options but that looks like the same stuff.

Doing UI stuff from asynctasks is a bit finicky. You need to use a Handler, and ensure the UI element you want to manipulate still exists (and the activity that called it is still there). However, it is one of the better ways in Android for short little things. If what you want is something persistent, you should probably use an intentservice or a futuretask (interaction with the UI is similarly finicky or even more so).

Fragment has the advantage that it is a UI element, so changing the UI is easy. However, doing computation on the UI thread is a terrible idea, and if you want to run stuff asynchronously, Fragments are not the place for it: they will block the UI, and cause your app to stall/crash/get killed.
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
May 15 2018 15:30 GMT
#19164
Yes, Fragment runs on the main thread. I tried it and couldn't handle the 1/2 second delay.

I tried it as an AsyncTask, too, and that seemed to work fine but I was wondering if there was a "better" Android way to do it.

From what I've read and experienced it seems hard to pass data back from an IntentService to a particular Activity. I've mostly been sending information to the user from them in Notifications.

I'll look into FutureTask.
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
Hanh
Profile Joined June 2016
146 Posts
May 15 2018 23:44 GMT
#19165
Changes to your model data shouldn't be coupled with UI anyway. If you have a long running task, use an async workflow and have it update your model. Keep your model in normal form but set up observers/computed properties in model views. Finally bind views to your model views.
Then your flow is:
- user performs a UI action like clicking on a button,
- button is bound to a field in the model view, which gets a onClick callback
- onClick dispatches the async workflow
- UI thread continues so the user can do other stuff if needed
- async workflow dispatcher picks up the task and starts executing it
- as it progresses, the w/f may update the model or it could update the model only at the end
- when the model updates, observers are notified and recompute their output
- view model updates the view properties that changed
- view refreshes

Consider your modern car, when you press on the gas pedal (UI) you send a signal (dispatch) to the on board computer (model). The later decides how much gas it should send to the engine (model logic). A bunch of sensors read your speed, rpm, etc. (view model) and they turn these values into something that the dashboard displays (view)

Old cars would directly couple the gas pedal with the carburetor and the dashboard have gauges directly hooked to the wheels and engine. It is a far simpler design but it doesn't allow for much 'smartness'.
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
May 16 2018 01:05 GMT
#19166
Ah, right. I can't implement the Observer pattern for my DB because I'm using GreenDAO which doesn't support it. Your idea sounds great, though.
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
Last Edited: 2018-05-16 07:35:34
May 16 2018 07:18 GMT
#19167
Of course you can implement the Observer pattern, just write a class that gates access to the ORM.


Use one Activity. Up to you about whether you want lots of Fragments or not. Don't use AsyncTask or Loaders or Handlers. Use LiveData which is part of the new Architecture Components.

Here's a bunch of modern samples.

https://github.com/googlesamples/android-architecture-components
https://developer.android.com/topic/libraries/architecture/



For fun watch about more modern Android development:

There is no one like you in the universe.
berated-
Profile Blog Joined February 2007
United States1134 Posts
May 16 2018 10:41 GMT
#19168
On May 16 2018 16:18 Blisse wrote:
Of course you can implement the Observer pattern, just write a class that gates access to the ORM.


Use one Activity. Up to you about whether you want lots of Fragments or not. Don't use AsyncTask or Loaders or Handlers. Use LiveData which is part of the new Architecture Components.

Here's a bunch of modern samples.

https://github.com/googlesamples/android-architecture-components
https://developer.android.com/topic/libraries/architecture/



For fun watch about more modern Android development:

https://www.youtube.com/watch?v=IrMw7MEgADk


When did all this stuff come out? I just skimmed it but it looks way nicer than the previous apis. We abandoned the Android part after about a year of iterating to loaders for everything if you don't want your app to a crash and just use a webview wrapper for everything. Does the new architecture help handle network failures more easily too?
Manit0u
Profile Blog Joined August 2004
Poland17610 Posts
May 17 2018 18:28 GMT
#19169
[image loading]
Time is precious. Waste it wisely.
Khalum
Profile Joined September 2010
Austria831 Posts
May 17 2018 19:57 GMT
#19170
On May 18 2018 03:28 Manit0u wrote:
[image loading]


Seems rhobust.
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
May 17 2018 23:30 GMT
#19171
On May 16 2018 16:18 Blisse wrote:
Of course you can implement the Observer pattern, just write a class that gates access to the ORM.


Use one Activity. Up to you about whether you want lots of Fragments or not. Don't use AsyncTask or Loaders or Handlers. Use LiveData which is part of the new Architecture Components.

Here's a bunch of modern samples.

https://github.com/googlesamples/android-architecture-components
https://developer.android.com/topic/libraries/architecture/



For fun watch about more modern Android development:

https://www.youtube.com/watch?v=IrMw7MEgADk

Well, also because I don't think it applies to part of my use case. Generating a wallet file takes ~5s, which may be too long for a user to wait on an activity to get the updated data. However, I will do it because it seems better.
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
Hanh
Profile Joined June 2016
146 Posts
May 18 2018 00:07 GMT
#19172
On May 18 2018 08:30 WarSame wrote:
Show nested quote +
On May 16 2018 16:18 Blisse wrote:
Of course you can implement the Observer pattern, just write a class that gates access to the ORM.


Use one Activity. Up to you about whether you want lots of Fragments or not. Don't use AsyncTask or Loaders or Handlers. Use LiveData which is part of the new Architecture Components.

Here's a bunch of modern samples.

https://github.com/googlesamples/android-architecture-components
https://developer.android.com/topic/libraries/architecture/



For fun watch about more modern Android development:

https://www.youtube.com/watch?v=IrMw7MEgADk

Well, also because I don't think it applies to part of my use case. Generating a wallet file takes ~5s, which may be too long for a user to wait on an activity to get the updated data. However, I will do it because it seems better.


The user doesn't wait for anything. As I said, the workflow is async and the user interface is not blocked. If your app supports multiple wallets, he could even create more than one and still not block.
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
May 18 2018 03:57 GMT
#19173
I get that it doesn't block the main thread, I was just thinking that since I have to work with wallets and Ethereum my wait time for certain actions can be ~40s where a notification may serve the purpose better than waiting for the UI. But I'll put both in.
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
enigmaticcam
Profile Blog Joined October 2010
United States280 Posts
Last Edited: 2018-05-18 17:44:04
May 18 2018 17:43 GMT
#19174
Question on entity framework in C#.Net. I know EF supports transactions. But I want my SaveChanges to be dependent on a database check and I'm not sure how to do that.

I have an entity and any user can potentially create a new row in that table. This table has an IsComplete field. I only want to allow creating new rows if all rows in the table are marked true for IsComplete. The default value when creating a new row is false for IsComplete. So obviously there's potential risk if two different people create a new row at the same time. In that scenario, I would only want one to be successful, and the other should fail because the first one is not complete.

Typically I would just wrap the check and the save in a sql transaction script, but I'm not sure how to do that using EF. Any help? I tried googling, but I keep getting more broad information on just transactions or rolling back SaveChanges.
Manit0u
Profile Blog Joined August 2004
Poland17610 Posts
May 18 2018 20:03 GMT
#19175
You could either try locking the database (SELECT FOR UPDATE), a transaction that checks the count at the beginning and end and rolls back if it's not right, or using distributed locking with something like Redis Mutex.
Time is precious. Waste it wisely.
supereddie
Profile Joined March 2011
Netherlands151 Posts
May 19 2018 09:17 GMT
#19176
On May 19 2018 02:43 enigmaticcam wrote:
Question on entity framework in C#.Net. I know EF supports transactions. But I want my SaveChanges to be dependent on a database check and I'm not sure how to do that.

I have an entity and any user can potentially create a new row in that table. This table has an IsComplete field. I only want to allow creating new rows if all rows in the table are marked true for IsComplete. The default value when creating a new row is false for IsComplete. So obviously there's potential risk if two different people create a new row at the same time. In that scenario, I would only want one to be successful, and the other should fail because the first one is not complete.

Typically I would just wrap the check and the save in a sql transaction script, but I'm not sure how to do that using EF. Any help? I tried googling, but I keep getting more broad information on just transactions or rolling back SaveChanges.

Just add a check constraint in the database. It will generate an exception and then you can rollback your transaction.
"Do not try to make difficult things possible, but make simple things simple." - David Platt on Software Design
sabas123
Profile Blog Joined December 2010
Netherlands3122 Posts
May 19 2018 15:43 GMT
#19177
Just got my necessary math certificate after first hearing I failed it. Now I can finally go on to a University and study actual computer science instead of some flaky applied version. I'M SO HAPPY!!!!
The harder it becomes, the more you should focus on the basics.
bo1b
Profile Blog Joined August 2012
Australia12814 Posts
Last Edited: 2018-05-20 02:15:36
May 20 2018 02:15 GMT
#19178
On May 20 2018 00:43 sabas123 wrote:
Just got my necessary math certificate after first hearing I failed it. Now I can finally go on to a University and study actual computer science instead of some flaky applied version. I'M SO HAPPY!!!!

Good shit man Depending on what you want to study in cs, selecting to do more mathematics rather then less can be a truly excellent idea.
ShoCkeyy
Profile Blog Joined July 2008
7815 Posts
May 20 2018 04:16 GMT
#19179
Congrats Sabas123, as bo1b said, going a more math route would be a smart idea. A lot of companies are looking for more stats engineers due to machine learning, and AI which are the two largest growing sectors for CS imo.
Life?
bo1b
Profile Blog Joined August 2012
Australia12814 Posts
May 20 2018 04:38 GMT
#19180
Most of the really specialised subsets of cs (I want to say all, but I could be wrong) have heavy groundings in various types of math.
Prev 1 957 958 959 960 961 1032 Next
Please log in or register to reply.
Live Events Refresh
BSL 21
20:00
Non-Korean Championship - D4
Bonyth vs Sziky
Mihu vs QiaoGege
Sziky vs XuanXuan
eOnzErG vs QiaoGege
Mihu vs DuGu
Dewalt vs Bonyth
ZZZero.O262
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
JuggernautJason132
StarCraft: Brood War
Shuttle 628
ZZZero.O 262
Dota 2
syndereN300
Pyrionflax230
LuMiX1
Super Smash Bros
Westballz22
Other Games
tarik_tv19645
gofns9626
summit1g7583
FrodaN6165
Grubby3448
Liquid`RaSZi2722
Fnx 1461
fl0m1231
B2W.Neo820
Liquid`Hasu269
ToD260
XaKoH 213
KnowMe149
ArmadaUGS106
Organizations
Other Games
gamesdonequick2030
EGCTV1100
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 20 non-featured ]
StarCraft 2
• HeavenSC 39
• Hupsaiya 39
• musti20045 25
• RyuSc2 14
• Reevou 10
• IndyKCrew
• sooper7s
• AfreecaTV YouTube
• intothetv
• Kozan
• LaughNgamezSOOP
• Laughngamez YouTube
• Migwel
StarCraft: Brood War
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• masondota21244
League of Legends
• TFBlade1112
Other Games
• imaqtpie2948
• Scarra1324
Upcoming Events
Replay Cast
10h 20m
Wardi Open
13h 20m
Monday Night Weeklies
18h 20m
OSC
1d 12h
The PondCast
2 days
OSC
2 days
Big Brain Bouts
4 days
Serral vs TBD
BSL 21
5 days
BSL 21
6 days
Liquipedia Results

Completed

Escore Tournament S1: W4
Big Gabe Cup #3
NA Kuram Kup

Ongoing

C-Race Season 1
IPSL Winter 2025-26
BSL 21 Non-Korean Championship
CSL 2025 WINTER (S19)
KCM Race Survival 2026 Season 1
Proleague 2026-01-18
OSC Championship Season 13
Underdog Cup #3
BLAST Bounty Winter Qual
eXTREMESLAND 2025
SL Budapest Major 2025
ESL Impact League Season 8
BLAST Rivals Fall 2025
IEM Chengdu 2025

Upcoming

Escore Tournament S1: W5
Acropolis #4
IPSL Spring 2026
Bellum Gens Elite Stara Zagora 2026
HSC XXVIII
Rongyi Cup S3
Nations Cup 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League Season 23
ESL Pro League Season 23
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.