• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 05:03
CEST 11:03
KST 18:03
  • 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
[ASL22] Ro8 Preview: In A Tizzy9[ASL22] Ro16 Preview: Holy Diver5[ASL22] Ro16 Preview: Rough Waters10[ASL22] Ro24 Preview: Siren's Call8[ASL22] Ro24 Preview: Summer's End9
Community News
Weekly Cups (Sep 13-20): herO scores triple1BSL Season 235Weekly Cups (Sep 7-12): SHIN, ByuN, MaxPax double down1StarCraft open world shooter announced at BlizzCon101Weekly Cups (Aug 30-Sep 7): herO thrives amid growing schism10
StarCraft 2
General
Balance hotfix patch 5.0.16b (July 16) Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool How do you feel about the StarCraft shooter announcement at BlizzCon 2026? The Death of Cheese: From a Professional Cheeser Weekly Cups (Sep 13-20): herO scores triple
Tourneys
Stellar Fest TWO the Moon (Dec 16-20) Sparkling Tuna Cup - Weekly Open Tournament 2026 GSTL Announcement RSL Revival: Season 6 - Qualifiers and Main Event RSL goes to London! 2026 Offline Finals Nov 21-22
Strategy
[H] ZvP Mid-Late Game: Stalkers Collossi HT
Custom Maps
Nexus Wars 2021 GUIDE [M] (2) Industrial Park
External Content
Mutation # 544 Double Trouble The PondCast: SC2 News & Results Mutation # 543 Enhanced Defenses Mutation # 542 The Ascended
Brood War
General
screpdb: new Starcraft reporting tool an AI researcher's take on the ladder bot BW General Discussion Bot on ladder [ASL22] Ro8 Preview: In A Tizzy
Tourneys
[ASL22] Ro8 Day 2 [ASL22] Ro16 Group D [ASL22] Ro8 Day 1 [IPSL] IPSL is Back With Winter 26-27!
Strategy
Cliff Jump Revisited (1 in a 1000 strategy) Replay Review Process - What do you do? Simple Questions, Simple Answers Odyssey Mineral Stack Saturation
Other Games
General Games
Diablo IV Nintendo Switch Thread Warcraft III: The Frozen Throne Stormgate/Frost Giant Megathread EVE Corporation
Dota 2
Dota 2 Champions League Season 3 Begins April 25! Official 'what is Dota anymore' discussion
League of Legends
[TL LoL EUW IHs] Teemo shall perish
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Artificial Intelligence Thread Things Aren’t Peaceful in Palestine All you football fans (soccer)!
Fan Clubs
MarineLorD Fan Club The Creator Fan Club The ShoWTimE Fan Club
Media & Entertainment
Movie Discussion! [Manga] One Piece Diablo Animated Series on Netflix
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Recent Gifted Posts
Blogs
Gaming Intensity, Problemati…
TrAiDoS
38 yo Retired SWE loo…
PurE)Rabbit-SF
Can Bots Beat Pros?? Starcr…
namkraft
[meme] I finally understa…
LUCKY_NOOB
Regacy Esports:Our Goa…
regacyesports
Dreaming of BW patches (mod…
c3rberUs
Customize Sidebar...

Website Feedback

Closed Threads



Active: 8282 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
Spain18445 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
Poland17843 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
Poland17843 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
Next event in 1h 57m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
ProTech142
Has 60
StarCraft: Brood War
Shuttle 2567
Britney 2069
firebathero 745
Leta 350
Stork 243
BeSt 118
PianO 54
Sharp 41
sorry 39
Shinee 35
[ Show more ]
Hm[arnc] 28
Shine 27
Bale 24
Terrorterran 14
zelot 14
ajuk12(nOOB) 8
Dota 2
Gorgc3365
League of Legends
Reynor81
Other Games
olofmeister801
ceh9564
JimRising 435
Happy412
crisheroes176
Livibee133
Maynarde132
Mew2King74
Pyrionflax14
Organizations
Dota 2
PGL Dota 2 - Main Stream10141
Other Games
gamesdonequick491
StarCraft: Brood War
Afreeca ASL 331
[ Show 15 non-featured ]
StarCraft 2
• Berry_CruncH147
• StrangeGG 39
• mYiSmile127
• LUISG 22
• Letter144
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• lizZardDota2112
League of Legends
• Stunt561
Upcoming Events
Kung Fu Cup
1h 57m
The PondCast
1d
Replay Cast
1d 14h
Korean StarCraft League
2 days
CranKy Ducklings
3 days
GSL
3 days
Yamato Cup
4 days
Replay Cast
4 days
Afreeca Starleague
5 days
WardiTV Weekly
5 days
[ Show More ]
Sparkling Tuna Cup
6 days
Afreeca Starleague
6 days
PiGosaur Cup
6 days
Liquipedia Results

Completed

Super Anchor Qualifying S3
Blizzard Classic Cup 2026
Big Dog Cup 2026 Div 1

Ongoing

ASL Season 22
CSL 2026 AUTUMN (S22)
Acropolis #5
Acropolis #5 - GSA
Calamity Invitational
Logitech G Play Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #3
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026

Upcoming

Acropolis #5 - GSB
Acropolis #5 - GSC
BSL Season 23
SC4ALL II: Brood War
BSL 23: Non-Korean Championship
HSC XXX
Stellar Fest 2: Lunar Cup
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
Custodian Cup
Copium Cup
PGL Major Singapore 2026
Stake Ranked Episode 6
BLAST Rivals Fall 2026
IEM Beijing 2026
Stake Ranked Episode 5
PGL Masters Bucharest 2026
1win Private Club #2
Thunderpick World Champ. '26
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
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.