• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 01:00
CEST 07:00
KST 14:00
  • 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
Team TLMC #5 - Finalists & Open Tournaments0[ASL20] Ro16 Preview Pt2: Turbulence10Classic Games #3: Rogue vs Serral at BlizzCon9[ASL20] Ro16 Preview Pt1: Ascent10Maestros of the Game: Week 1/Play-in Preview12
Community News
Weekly Cups (Sept 8-14): herO & MaxPax split cups4WardiTV TL Team Map Contest #5 Tournaments1SC4ALL $6,000 Open LAN in Philadelphia8Weekly Cups (Sept 1-7): MaxPax rebounds & Clem saga continues29LiuLi Cup - September 2025 Tournaments3
StarCraft 2
General
#1: Maru - Greatest Players of All Time Weekly Cups (Sept 8-14): herO & MaxPax split cups Team Liquid Map Contest #21 - Presented by Monster Energy SpeCial on The Tasteless Podcast Team TLMC #5 - Finalists & Open Tournaments
Tourneys
Maestros of The Game—$20k event w/ live finals in Paris SC4ALL $6,000 Open LAN in Philadelphia Sparkling Tuna Cup - Weekly Open Tournament WardiTV TL Team Map Contest #5 Tournaments RSL: Revival, a new crowdfunded tournament series
Strategy
Custom Maps
External Content
Mutation # 491 Night Drive Mutation # 490 Masters of Midnight Mutation # 489 Bannable Offense Mutation # 488 What Goes Around
Brood War
General
[ASL20] Ro16 Preview Pt2: Turbulence BW General Discussion ASL20 General Discussion Diplomacy, Cosmonarchy Edition BGH Auto Balance -> http://bghmmr.eu/
Tourneys
[ASL20] Ro16 Group D [ASL20] Ro16 Group C [Megathread] Daily Proleagues SC4ALL $1,500 Open Bracket LAN
Strategy
Simple Questions, Simple Answers Muta micro map competition Fighting Spirit mining rates [G] Mineral Boosting
Other Games
General Games
Path of Exile Stormgate/Frost Giant Megathread General RTS Discussion Thread Nintendo Switch Thread Borderlands 3
Dota 2
Official 'what is Dota anymore' discussion LiquidDota to reintegrate into TL.net
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Canadian Politics Mega-thread Russo-Ukrainian War Thread The Big Programming Thread
Fan Clubs
The Happy Fan Club!
Media & Entertainment
Movie Discussion! [Manga] One Piece Anime Discussion Thread
Sports
2024 - 2026 Football Thread Formula 1 Discussion MLB/Baseball 2023
World Cup 2022
Tech Support
Linksys AE2500 USB WIFI keeps disconnecting Computer Build, Upgrade & Buying Resource Thread High temperatures on bridge(s)
TL Community
BarCraft in Tokyo Japan for ASL Season5 Final The Automated Ban List
Blogs
The Personality of a Spender…
TrAiDoS
A very expensive lesson on ma…
Garnet
hello world
radishsoup
Lemme tell you a thing o…
JoinTheRain
RTS Design in Hypercoven
a11
Evil Gacha Games and the…
ffswowsucks
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1130 users

The Big Programming Thread - Page 659

Forum Index > General Forum
Post a Reply
Prev 1 657 658 659 660 661 1031 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.
Rollin
Profile Joined March 2011
Australia1552 Posts
August 16 2015 14:46 GMT
#13161
On August 16 2015 18:32 Manit0u wrote:
1. The most important thing in Git is performance. You can't really trump C in that matter.
Another poster addressed this point already. C and C++ are both very fast, and either can be made slower than the other through design decisions.
2. C is much less forgiving than C++, which leads to tighter code reviews and requiring more competence on the developer's side. It's also much simpler, making it easier to debug.
Templates in C++ are difficult to debug, but extensive template metaprogramming can be a code smell and usually should be avoided, and is impossible to emulate with C. Sure, there are a few more subtleties in C++ that the uninitiated will miss, but C has it's own share of difficult to diagnose problems too. Whilst C is less complex as a language, the codebase needs to be more complex to work around the limitations in the language. Hacking around with pointers and little abstraction leads to lovely memory access problems to debug throughout the program. I also fail to see how requiring more competence is a positive feature in a language.
3. The biggest gripe Linus has with C++ is the fact that the language offers too much freedom to the programmer (think opposite of Python, where there's only one best way to do something). This in turn makes for huge code discrepancies between programmers (even within C++ libraries you have some math stuff that's inconsistent and incompatible with each other, like matrices), which can be a nightmare to review and debug in an open source project with many contributors.
I disagree with your assertion here. The biggest gripe he seems to have is that C++ programmers seem to be less experienced in general, and don't know what they're doing/tend to think at a higher level. Which is possibly a bad thing for his project, but not a reflection on the language at all.

I think C has it's place, in the embedded systems environment primarily, where writing a fully compliant C++ compiler for every platform is a waste of effort. I can't speak for kernel/OS development because I've never done it. Having good coding standards for (a subset of) C++ will give you far better abstraction and performance mostly equivalent writing plain C (yes there are some slower bits you can choose to use), without requiring a decade of experience (for esoteric C++ features).

C++ for non-performance oriented code is a good way to waste developer time though.
Throw off those chains of reason, and your prison disappears. | Check your posting frequency timeline: http://www.teamliquid.net/mytlnet/post_activity_img.php
zatic
Profile Blog Joined September 2007
Zurich15345 Posts
August 20 2015 10:06 GMT
#13162
On August 16 2015 07:23 sabas123 wrote:
Show nested quote +
On August 16 2015 06:37 Sufficiency wrote:
A small digression:

I have been using Python on and off for half a year now. I don't claim to be an expert by any means (in fact I still struggle with list comprehension and need to rely on Google's help), but I just want to say that writing code in Python has been a truly enjoyable process for me.

This comes from someone who started out with C++ at an early age.

Can you tell me why python is so awesome? I personally only have touched the c family of c/c++, php and c#.

Because within the first day you will find that you can write code as fast as you can type.

Seriously, if you have used PHP before, for you next web project try Python with a mini framework like Flask or Bottle. It's night and day. You'll get your shit done faster guaranteed and it'll include learning the language.

Oh, and yeah, use Python 3.
ModeratorI know Teamliquid is known as a massive building
Manit0u
Profile Blog Joined August 2004
Poland17341 Posts
Last Edited: 2015-08-24 22:21:46
August 24 2015 22:17 GMT
#13163
Oh boy. What a fun day I've had at work.

Starts off as usual, client wants some new feature in his system. Something that would be relatively simple to accomplish (add file uploads to the static pages) if not for the fact that when this client approached us first the management took the decision to use 3rd party tools instead of using our own system as base for this one. Here comes me, being assigned to this task which was estimated at 1h (hahaha).

Checking out the system revealed a couple of facts:

1) Symfony2 (good so far)
2) Sylius (would be good if it wouldn't be in the 0.15 beta stage or something)
3) Symfony CMF + Sonata Blocks for static content (I had some dealings with this before, wasn't good experience)

Checking out things that were already done reveals a relatively simple process of implementing the feature. Create new static block type (for holding a file), then container for them (a bit like image slideshow, something that would allow people to add multiple files as a single section instead of doing it one by one) and it's done as the client would then be able to add either single files or collections wherever they want in the static content.

Now the fun starts...

As I quickly discover, there's plenty of overrides already in the system (including Sylius overriding their own product model, WTF?), there's hundreds of lines of configuration code accompanying it (enterprise software, yay!) which I don't really want to delve into.

If anyone has ever seen anything like that, you know what I mean:


namespace Acme\SocialBundle\DependencyInjection;

use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;

class Configuration implements ConfigurationInterface
{
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('acme_social');

$rootNode
->children()
->arrayNode('twitter')
->children()
->integerNode('client_id')->end()
->scalarNode('client_secret')->end()
->end()
->end() // twitter
->end()
;

return $treeBuilder;
}
}


Instead I opt for a nicer way of doing it, creating my own bundle with separate configuration so I can keep everything contained, decoupled and nicely organized. I do all the dependency injection, extend a few things to keep it compatible with the rest of the system, follow the docs etc. All is cool and dandy until I hit a brick wall...

Everything looks picture perfect, neat and all, but I keep getting errors about the system not being able to resolve the namespace for one of the files. I'm dumbfounded. I double check the files and config to see if perhaps I've misspelled something, put wrong routes or anything like that. Nope, all looks good.

The problem:
All those bundles (symfony, symfony-cmf, sylius) use different ways of automatic namespace resolution. Sylius is broken down into bundles and components (model files reside in the components while controllers, views and config are kept in the bundle, model namespaces usually look something like that: Sylius\Component\Model\Product), symfony has its standard way of storing models in the Entity folder (YourBundle\Entity) while symfony-cmf keeps it either in CmfBundle\Model for regulard db stuff or CmfBundle\Doctrine\Phpcr for content blocks.

Since the system is technically Sylius I first try to check where they keep their content blocks. I discover that they do have static content, but they simply use their own controllers and repositories for that while leaving all the model files in the symfony-cmf stuff (not cool). My head starts spinning at this point. I'm trying various things, playing around with configuration etc. etc.

Took me 10 hours to discover that if you want to create your own block type using symfony-cmf you can't follow their project structure. You have to keep your block files in the frigging \Document directory (which is obviously inconsistent with all of the above), otherwise your namespace won't be resolved. Discovering where to put the mapping config files was another headache since I've had multiple options there too.

And that, ladies and gentlemen, is why convention beats configuration.
Time is precious. Waste it wisely.
Ben...
Profile Joined January 2011
Canada3485 Posts
August 24 2015 22:42 GMT
#13164
On August 20 2015 19:06 zatic wrote:
Oh, and yeah, use Python 3.

Good call. I still see a lot of people use Python 2. Given that it is being deprecated within the next 5 years, 3 is the way to go.

But really, as zatic said, try python out and you'll get almost immediately why people like it. You can do so much with so little code. I built an entire search simulation for my AI class in Python (using the NetworkX package. Seriously, if you need to to graph stuff, NetworkX is AMAZING) in under 600 lines, when others using C#, C++, and Java were using at least 2 or 3 times as many lines. And I can guarantee my version was easier to read and figure out.
"Cliiiiiiiiiiiiiiiiide" -Tastosis
Acrofales
Profile Joined August 2010
Spain18049 Posts
August 24 2015 22:53 GMT
#13165
On August 25 2015 07:42 Ben... wrote:
Show nested quote +
On August 20 2015 19:06 zatic wrote:
Oh, and yeah, use Python 3.

Good call. I still see a lot of people use Python 2. Given that it is being deprecated within the next 5 years, 3 is the way to go.

But really, as zatic said, try python out and you'll get almost immediately why people like it. You can do so much with so little code. I built an entire search simulation for my AI class in Python (using the NetworkX package. Seriously, if you need to to graph stuff, NetworkX is AMAZING) in under 600 lines, when others using C#, C++, and Java were using at least 2 or 3 times as many lines. And I can guarantee my version was easier to read and figure out.

It's being deprecated in the next 5 years... that's not the most convincing argument I have heard :'D

But seriously, it really depends on what you want to do and what libraries you need for that. I use Python 2.7 because there are quite a few ML and other scientific libraries that are not available (yet? ever? who knows. the perils of community development projects) for Python 3. Rather than fussing about whether my library is available in Python 3, I just use Python 2.7 for everything. And yes, that means I sometimes run into stupid issues that have already been fixed in newer versions (although never without either a fix or a workaround for 2.7), but while 2.7 development is no longer ongoing, it is really stable.
zatic
Profile Blog Joined September 2007
Zurich15345 Posts
August 25 2015 08:34 GMT
#13166
For someone just wanting to try out Python python3 is the way to go though. python2 still has much inconsistency in there.

Heck, print('Hello World') instead of print u'Hello World' says it all really.

Libraries are a bit annoying right now that's true. I am expecting that to reverse soon though, there will be plenty of libraries that will continue only on the 3 branch.
ModeratorI know Teamliquid is known as a massive building
Nyxisto
Profile Joined August 2010
Germany6287 Posts
Last Edited: 2015-08-25 19:12:48
August 25 2015 19:10 GMT
#13167
While speaking of python, can someone help me out with pyplot? I have a loop that returns me a matrix and I want to visualize that matrix with pyplot so I made a function that does this.

The problem is that I just can't manage to get the window to close again, plt.close() simply isn't working. I have already used plt.ion() so it is supposed to stay interactive, but close() just doesn't work.
Acrofales
Profile Joined August 2010
Spain18049 Posts
Last Edited: 2015-08-25 20:17:26
August 25 2015 20:10 GMT
#13168
On August 26 2015 04:10 Nyxisto wrote:
While speaking of python, can someone help me out with pyplot? I have a loop that returns me a matrix and I want to visualize that matrix with pyplot so I made a function that does this.

The problem is that I just can't manage to get the window to close again, plt.close() simply isn't working. I have already used plt.ion() so it is supposed to stay interactive, but close() just doesn't work.

You want to close it upon what? You can close a pyplot window by clicking on the X in the top right corner. If you want to use your window in some bigger program, you should probably look into drawing it on a canvas and using the canvas.

Anyway, make sure you have plt.ion() before plt.show() (otherwise it's pointless). Then plt.close() should close your current plot, or use plt.close('all') to close all plots. However, it is still not completely clear to me why you would want to close pyplot's window from your python script.

EDIT: ran a test with python 2.7.6 and matplotlib 1.3.1 in Linux (Ubuntu with Xfce4 desktop environment) and it works just fine.
Nyxisto
Profile Joined August 2010
Germany6287 Posts
August 25 2015 20:30 GMT
#13169
I fixed it now. I just didn't import all the stuff from pylab that I needed.
FunkyLich
Profile Blog Joined August 2010
United States107 Posts
August 25 2015 22:49 GMT
#13170
I'm not seing Go mentioned (golang if you wanna search it). It's got the stability of java without all the class hierarchy / access controls: you manage your abstractions purely with interfaces. That might scare you a bit, unless you're a C programmer, but trust me it's refreshing. It borrows a lot from C for language design, for example pointers, including pointers to functions so you can make closures and stuff. However it does even better, because pointers do not require explicit indirection for accessing fields (no ptr->fieldA, just ptr.fieldA). It's got dirt simple dependency management: you can literally just plop a github url in your import block. It has a great concurrency model, with something called channels, basically message passing for threads. The design is conducive to multicore systems, and as we all know parallelism is the future.

The native toolset is also pretty amazing. They have something called gofix which lets you write refactoring SCRIPTS. walking the parse tree of a program, and rewriting as you go. So if you have a lib that you released 1.0 for, and your ready for 2.0 but your users aren't, instead of promising to maintain 1.0, you just hand out a refactor script, and they run that on their codebase, so they're always up to date. And some other random stuff ... You can run your programs with "-race" flag to help find race conditions. gofmt can canonicalize all your code before committing. The static analysis available to you here is unrivaled.

My only gripes so far have been the 1) uncomfortably lax namespacing: there's no "file" scope, just package scope and function scope which leads me to 2) packages are not like java packages where they are actually folders: a package is your whole fucking project, and your whole fucking project has gotta go in one fucking folder, maybe they are telling me to break my project into libs idk. 3) A stupid stupid rule where unused variables and imports are errors not warnings, more specifically the Go team does not believe in warnings. If you look in the doc to find out how to bypass this, they tell you this painful way that's more annoying than just commenting the import. They're basically just like "fuck you, remove your import", paraphrased of course. 4) No immutability. God I miss my immutable guava classes. They've got a const, but you can't make struct fields const like you can make class attributes final in java. This however, is fairly well managed because pointers let you essentially decide whether to pass something by value or reference, thereby conferring read-only access to an object as desired. And the lightweight structs make copying / passing by value inexpensive 5) arrays and slices were a bit confusing, or I'm an idiot, or I couldn't think of an obligatory number 5, whichever you prefer.

So yeah it's pretty hot right now. Y'all should check it out.
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
August 25 2015 22:58 GMT
#13171
On August 25 2015 07:42 Ben... wrote:
Show nested quote +
On August 20 2015 19:06 zatic wrote:
Oh, and yeah, use Python 3.

Good call. I still see a lot of people use Python 2. Given that it is being deprecated within the next 5 years, 3 is the way to go.

But really, as zatic said, try python out and you'll get almost immediately why people like it. You can do so much with so little code. I built an entire search simulation for my AI class in Python (using the NetworkX package. Seriously, if you need to to graph stuff, NetworkX is AMAZING) in under 600 lines, when others using C#, C++, and Java were using at least 2 or 3 times as many lines. And I can guarantee my version was easier to read and figure out.


Almost every language can be readable if one has good discipline, that is, good naming of variables, short methods with good names, etc.
phar
Profile Joined August 2011
United States1080 Posts
August 26 2015 00:40 GMT
#13172
On August 16 2015 18:32 Manit0u wrote:
1. The most important thing in Git is performance.


Just gonna leave this here:

http://thread.gmane.org/gmane.comp.version-control.git/189776

https://code.facebook.com/posts/218678814984400/scaling-mercurial-at-facebook/
Who after all is today speaking about the destruction of the Armenians?
Manit0u
Profile Blog Joined August 2004
Poland17341 Posts
August 27 2015 09:01 GMT
#13173
On August 26 2015 09:40 phar wrote:
Show nested quote +
On August 16 2015 18:32 Manit0u wrote:
1. The most important thing in Git is performance.


Just gonna leave this here:

http://thread.gmane.org/gmane.comp.version-control.git/189776

https://code.facebook.com/posts/218678814984400/scaling-mercurial-at-facebook/


In my opinion, if you let the project source files grow to 15GB it's not really the vcs you should be worried about. And even then you could simply use submodules and such to split it into managable chunks.

We did that in our company, split our projects into versioned modules so we can use only the parts we need. Mixing and matching various versions is also easy this way.
Time is precious. Waste it wisely.
Djagulingu
Profile Blog Joined December 2010
Germany3605 Posts
August 27 2015 15:03 GMT
#13174
On August 27 2015 18:01 Manit0u wrote:
Show nested quote +
On August 26 2015 09:40 phar wrote:
On August 16 2015 18:32 Manit0u wrote:
1. The most important thing in Git is performance.


Just gonna leave this here:

http://thread.gmane.org/gmane.comp.version-control.git/189776

https://code.facebook.com/posts/218678814984400/scaling-mercurial-at-facebook/


In my opinion, if you let the project source files grow to 15GB it's not really the vcs you should be worried about. And even then you could simply use submodules and such to split it into managable chunks.

We did that in our company, split our projects into versioned modules so we can use only the parts we need. Mixing and matching various versions is also easy this way.

I don't know how fast of a version control does facebook expect to have. My company has 3-4GBs of repositories and has a whole lot of them (each repo of my current project is 4GB divided into submodules and has 4 repos of them) and number of commits may reach to 4 figures per day and SVN doesn't even flinch in terms of performance. Even for git, which keeps commit history locally, I don't think it would be so slow that it is noticable. I don't have git vs svn performance benchmarks but one really highly skilled dude in my company told that git has zero downsides in comparison to svn.
"windows bash is a steaming heap of shit" tofucake
Acrofales
Profile Joined August 2010
Spain18049 Posts
August 27 2015 15:09 GMT
#13175
On August 28 2015 00:03 Djagulingu wrote:
Show nested quote +
On August 27 2015 18:01 Manit0u wrote:
On August 26 2015 09:40 phar wrote:
On August 16 2015 18:32 Manit0u wrote:
1. The most important thing in Git is performance.


Just gonna leave this here:

http://thread.gmane.org/gmane.comp.version-control.git/189776

https://code.facebook.com/posts/218678814984400/scaling-mercurial-at-facebook/


In my opinion, if you let the project source files grow to 15GB it's not really the vcs you should be worried about. And even then you could simply use submodules and such to split it into managable chunks.

We did that in our company, split our projects into versioned modules so we can use only the parts we need. Mixing and matching various versions is also easy this way.

I don't know how fast of a version control does facebook expect to have. My company has 3-4GBs of repositories and has a whole lot of them (each repo of my current project is 4GB divided into submodules and has 4 repos of them) and number of commits may reach to 4 figures per day and SVN doesn't even flinch in terms of performance. Even for git, which keeps commit history locally, I don't think it would be so slow that it is noticable. I don't have git vs svn performance benchmarks but one really highly skilled dude in my company told that git has zero downsides in comparison to svn.

Given that one of the advantages of GIT over SVN is performance, I don't see why you'd expect it to be slower. Commits in git are lightning fast, and pushes *should* be faster than an SVN commit of a similar size and complexity.
Djagulingu
Profile Blog Joined December 2010
Germany3605 Posts
August 27 2015 19:15 GMT
#13176
On August 28 2015 00:09 Acrofales wrote:
Show nested quote +
On August 28 2015 00:03 Djagulingu wrote:
On August 27 2015 18:01 Manit0u wrote:
On August 26 2015 09:40 phar wrote:
On August 16 2015 18:32 Manit0u wrote:
1. The most important thing in Git is performance.


Just gonna leave this here:

http://thread.gmane.org/gmane.comp.version-control.git/189776

https://code.facebook.com/posts/218678814984400/scaling-mercurial-at-facebook/


In my opinion, if you let the project source files grow to 15GB it's not really the vcs you should be worried about. And even then you could simply use submodules and such to split it into managable chunks.

We did that in our company, split our projects into versioned modules so we can use only the parts we need. Mixing and matching various versions is also easy this way.

I don't know how fast of a version control does facebook expect to have. My company has 3-4GBs of repositories and has a whole lot of them (each repo of my current project is 4GB divided into submodules and has 4 repos of them) and number of commits may reach to 4 figures per day and SVN doesn't even flinch in terms of performance. Even for git, which keeps commit history locally, I don't think it would be so slow that it is noticable. I don't have git vs svn performance benchmarks but one really highly skilled dude in my company told that git has zero downsides in comparison to svn.

Given that one of the advantages of GIT over SVN is performance, I don't see why you'd expect it to be slower. Commits in git are lightning fast, and pushes *should* be faster than an SVN commit of a similar size and complexity.

Git actually IS faster than SVN? Damn, it does have zero downsides in comparison.
"windows bash is a steaming heap of shit" tofucake
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
Last Edited: 2015-08-27 22:31:21
August 27 2015 22:27 GMT
#13177
I've got an Android phone today. What options do I have for a private, personal app? Is it Java mainly? I know that language, but I'm going to google if C/C++ is also an option.

Edit: Haha, it's like they wrote this for me.


Android NDK
The NDK is a toolset that allows you to implement parts of your app using native-code languages such as C and C++. Typically, good use cases for the NDK are CPU-intensive applications such as game engines, signal processing, and physics simulation.

Before downloading the NDK, you should understand that the NDK will not benefit most apps. As a developer, you need to balance its benefits against its drawbacks. Notably, using native code on Android generally does not result in a noticable performance improvement, but it always increases your app complexity. In general, you should only use the NDK if it is essential to your app—never because you simply prefer to program in C/C++. When examining whether or not you should develop in native code, think about your requirements and see if the Android framework APIs provide the functionality that you need.
phar
Profile Joined August 2011
United States1080 Posts
August 27 2015 23:45 GMT
#13178
On August 27 2015 18:01 Manit0u wrote:
Show nested quote +
On August 26 2015 09:40 phar wrote:
On August 16 2015 18:32 Manit0u wrote:
1. The most important thing in Git is performance.


Just gonna leave this here:

http://thread.gmane.org/gmane.comp.version-control.git/189776

https://code.facebook.com/posts/218678814984400/scaling-mercurial-at-facebook/


In my opinion, if you let the project source files grow to 15GB it's not really the vcs you should be worried about. And even then you could simply use submodules and such to split it into managable chunks.

We did that in our company, split our projects into versioned modules so we can use only the parts we need. Mixing and matching various versions is also easy this way.

That is one route. Facebook, Google, etc chose to have single repository, you can read about the tradeoffs in the second link. Or here: http://www.infoq.com/presentations/Development-at-Google

Neither git nor svn (nor native mercurial) is fast enough to work at this scale. Perforce is, sort of... until it isn't.
Who after all is today speaking about the destruction of the Armenians?
Acrofales
Profile Joined August 2010
Spain18049 Posts
August 28 2015 00:29 GMT
#13179
On August 28 2015 07:27 darkness wrote:
I've got an Android phone today. What options do I have for a private, personal app? Is it Java mainly? I know that language, but I'm going to google if C/C++ is also an option.

Edit: Haha, it's like they wrote this for me.

Show nested quote +

Android NDK
The NDK is a toolset that allows you to implement parts of your app using native-code languages such as C and C++. Typically, good use cases for the NDK are CPU-intensive applications such as game engines, signal processing, and physics simulation.

Before downloading the NDK, you should understand that the NDK will not benefit most apps. As a developer, you need to balance its benefits against its drawbacks. Notably, using native code on Android generally does not result in a noticable performance improvement, but it always increases your app complexity. In general, you should only use the NDK if it is essential to your app—never because you simply prefer to program in C/C++. When examining whether or not you should develop in native code, think about your requirements and see if the Android framework APIs provide the functionality that you need.

Unless you really want to:
1) Write something that does very heavy computing
2) Use a specific library only available in C/C++
or
3) Have a particular fetish for needlessly complex programs

You should write Android apps in Java. An app can never be purely C/C++, because there is no I/O access through the NDK. That means any input and output has to be done in the Android framework in any case.
Biolunar
Profile Joined February 2012
Germany224 Posts
August 28 2015 08:57 GMT
#13180
An app can never be purely C/C++, because there is no I/O access through the NDK. That means any input and output has to be done in the Android framework in any case.

How is that even possible? At the very least you must be able to call the syscalls directly if there is no C library wrapping them.
What is best? To crush the Zerg, see them driven before you, and hear the lamentations of the Protoss.
Prev 1 657 658 659 660 661 1031 Next
Please log in or register to reply.
Live Events Refresh
PiGosaur Monday
00:00
#49
Liquipedia
OSC
23:00
OSC Elite Rising Star #16
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
WinterStarcraft519
StarCraft: Brood War
Leta 571
Noble 54
ajuk12(nOOB) 41
Icarus 9
Dota 2
NeuroSwarm138
Counter-Strike
Stewie2K448
semphis_45
Super Smash Bros
Mew2King37
Other Games
summit1g5047
C9.Mang0302
XaKoH 152
ViBE145
SortOf48
Trikslyr34
Organizations
Other Games
gamesdonequick705
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 15 non-featured ]
StarCraft 2
• OhrlRock 98
• intothetv
• AfreecaTV YouTube
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Rush1138
• Lourlo996
• Stunt420
Other Games
• Scarra1197
Upcoming Events
LiuLi Cup
6h
OSC
14h
RSL Revival
1d 5h
Maru vs Reynor
Cure vs TriGGeR
The PondCast
1d 8h
RSL Revival
2 days
Zoun vs Classic
Korean StarCraft League
2 days
BSL Open LAN 2025 - War…
3 days
RSL Revival
3 days
BSL Open LAN 2025 - War…
4 days
RSL Revival
4 days
[ Show More ]
Online Event
4 days
Wardi Open
5 days
Sparkling Tuna Cup
6 days
Liquipedia Results

Completed

Proleague 2025-09-10
Chzzk MurlocKing SC1 vs SC2 Cup #2
HCC Europe

Ongoing

BSL 20 Team Wars
KCM Race Survival 2025 Season 3
BSL 21 Points
ASL Season 20
CSL 2025 AUTUMN (S18)
LASL Season 20
RSL Revival: Season 2
Maestros of the Game
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1

Upcoming

2025 Chongqing Offline CUP
BSL World Championship of Poland 2025
IPSL Winter 2025-26
BSL Season 21
SC4ALL: Brood War
BSL 21 Team A
Stellar Fest
SC4ALL: StarCraft II
EC S1
ESL Impact League Season 8
SL Budapest Major 2025
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
MESA Nomadic Masters Fall
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
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 © 2025 TLnet. All Rights Reserved.