Search Results

Search found 7264 results on 291 pages for 'deferred loading'.

Page 122/291 | < Previous Page | 118 119 120 121 122 123 124 125 126 127 128 129  | Next Page >

  • What''s easy extensible technique to store game data?

    - by Miro
    I'm looking for library/technique for storing my game resources - levels, object (effects,world info), items(price,effects,...), NPC(visual info, behavior), everything except graphics/audio stuff. I've seen lua used for Awesome WM configuration. protobuf looks good, but it seems to be designed for network communication. I've tried to write my own parser, but as the project grows it's more and more harder to manage it and catch all the bugs. My requiremets: stability easy extension of data without need to convert older versions to newer good(don't have to be the best) performance of loading not much coding not XML!

    Read the article

  • How can a load and play an .x model using vertex animation in XNA?

    - by Christian
    From a game I developed years ago, I still have character models that my former 3D engine designer created and that I'd like to reuse in a Windows Phone project now. However, the files are in DirectX format (.x) containing keyframe animation only. No bones. No skeleton. There are a lot of animation keys defined on several frames to animate the characters. I don't quite understand how that works, to be frankly. However, I did a lot of research regarding a possible way of getting the characters animated via XNA on Windows Phone and all I found are hints that it is generally possible but not supported. Possibly by implementing own Content Importers and Processors. I didn't find anyone who successfully did something like that yet. How should I go about loading and displaying these models in XNA?

    Read the article

  • Best alternative of Property file in Java

    - by Ranna
    Hey I an working on the product which is live at multiple portals. The product is developed in GWT, JAVA, Hibernate. My question is : Whether there is any alternative of using property file in java. My Requirement : For one property key there are multiple values in live portal for each different portal. Each time I change property file, I need to make the war again. The loading of any of the property should not be time-consuming. Any help or suggession would be apprecialble !!!

    Read the article

  • viewing fbx files in windows via xna 4.0

    - by user17753
    I've made some models in Blender and exported them in Autodesk fbx format. I'm trying to view them using XNA 4.0 Refresh. Loading them isn't much an issue, but I'm not familiar enough with XNA 4.0 to, well basically I want to load in the model at say the origin (0,0,0) world coordinates, and then rotate and/or zoom the camera about the world coordinates origin as well so that I can test the model. Typically the mouse, and maybe some arrow keys for zooming/rotating the camera. Anyways, this seems like a simple task and I shouldn't have to re-invent this, isn't there a skeleton code somewhere for this kind of thing for XNA 4.0? I couldn't find a solid example for this on the web. I found a couple that seemed like they might work for xbox, but I'm trying to do this on windows only. Anyways, just looking to be pointed in the right direction on this one, thanks.

    Read the article

  • using gmail as email relay for sendmail

    - by Nikita
    I used to be able to send emails using a gmail account & sendmail configured using one of the guides on the Internet, for example: http://appgirl.net/blog/configuring-sendmail-to-relay-through-gmail-smtp/ This is a small server and I've recently moved it to a different house. And sendmail has stop working. The only thing different in the network setup is a new router. What is happening: In the log files, I see the following error: ...stat=Deferred: smtp.gmail.com: No route to host When I run from the command line: strace sendmail -f A -t B -u "Subject" -m "Message" -tls=yes ssl=yes -s smtp.gmail.com:587 -xu A -xp XYZ It hangs on this call: recvfrom(3, "m0\201\203\0\1\0\0\0\0\0\0\4ares\3lan\0\0\34\0\1", 8192, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.1.254")}, [16]) = 26 close(3) = 0 time(NULL) = 1339997943 open("/etc/localtime", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=3477, ...}) = 0 fstat64(3, {st_mode=S_IFREG|0644, st_size=3477, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb76ff000 read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0"..., 4096) = 3477 _llseek(3, -24, [3453], SEEK_CUR) = 0 read(3, "\nEST5EDT,M3.2.0,M11.1.0\n", 4096) = 24 close(3) = 0 munmap(0xb76ff000, 4096) = 0 socket(PF_FILE, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3 connect(3, {sa_family=AF_FILE, path="/dev/log"}, 110) = 0 send(3, "<18>Jun 18 01:39:03 sendmail[268"..., 96, MSG_NOSIGNAL) = 96 nanosleep({60, 0}, So it looks like at some point it tries to resolve the DNS name, but I don't have anything running on 53, so it dies out and then just hangs. The other interesting thing is that msmtp works just fine on the same server. Update: ares in strace output is actually the name of my server, but .254 IP address is the address of the router. Could anyone tell me why this is happening or what further steps can I take to investigate the issue? Thanks!

    Read the article

  • Upgrade 11.10 to 12.04 on Eee PC failed. GLIBC_2.14 not found

    - by user69170
    I was upgrading my Eee PC from 11.10 to 12.04 as prompted and the upgrade locked up (the lappy was plugged into power - so that wasn't the problem). The system won't boot now and I'm getting an error that "GLIBC_2.14 not found". I am unable to boot into any recovery mode or prior version. The lappy was a dual boot, but when I installed Ubuntu the first time, I opted out of that option (whoops). Now I can't load, it goes into a forever 'ubuntu' loading screen. I have a fresh install on a memory stick, but when I set the lappy to boot from it - it doesn't work. Help. I have no idea what to do next... ??

    Read the article

  • Objects won't render when Texture Compression + Mipmapping is Enabled

    - by felipedrl
    I'm optimizing my game and I've just implemented compressed (DXTn) texture loading in OpenGL. I've worked my way removing bugs but I can't figure out this one: objects w/ DXTn + mipmapped textures are not being rendered. It's not like they are appearing with a flat color, they just don't appear at all. DXTn textured objs render and mipmapped non-compressed textures render just fine. The texture in question is 256x256 I generate the mips all the way down 4x4, i.e 1 block. I've checked on gDebugger and it display all the levels (7) just fine. I'm using GL_LINEAR_MIPMAP_NEAREST for min filter and GL_LINEAR for mag one. The texture is being compressed and mipmaps being created offline with Paint.NET tool using super sampling method. (I also tried bilinear just in case) Source follow: [SNIPPET 1: Loading DDS into sys memory + Initializing Object] // Read header DDSHeader header; file.read(reinterpret_cast<char*>(&header), sizeof(DDSHeader)); uint pos = static_cast<uint>(file.tellg()); file.seekg(0, std::ios_base::end); uint dataSizeInBytes = static_cast<uint>(file.tellg()) - pos; file.seekg(pos, std::ios_base::beg); // Read file data mData = new unsigned char[dataSizeInBytes]; file.read(reinterpret_cast<char*>(mData), dataSizeInBytes); file.close(); mMipmapCount = header.mipmapcount; mHeight = header.height; mWidth = header.width; mCompressionType = header.pf.fourCC; // Only support files divisible by 4 (for compression blocks algorithms) massert(mWidth % 4 == 0 && mHeight % 4 == 0); massert(mCompressionType == NO_COMPRESSION || mCompressionType == COMPRESSION_DXT1 || mCompressionType == COMPRESSION_DXT3 || mCompressionType == COMPRESSION_DXT5); // Allow textures up to 65536x65536 massert(header.mipmapcount <= MAX_MIPMAP_LEVELS); mTextureFilter = TextureFilter::LINEAR; if (mMipmapCount > 0) { mMipmapFilter = MipmapFilter::NEAREST; } else { mMipmapFilter = MipmapFilter::NO_MIPMAP; } mBitsPerPixel = header.pf.bitcount; if (mCompressionType == NO_COMPRESSION) { if (header.pf.flags & DDPF_ALPHAPIXELS) { // The only format supported w/ alpha is A8R8G8B8 massert(header.pf.amask == 0xFF000000 && header.pf.rmask == 0xFF0000 && header.pf.gmask == 0xFF00 && header.pf.bmask == 0xFF); mInternalFormat = GL_RGBA8; mFormat = GL_BGRA; mDataType = GL_UNSIGNED_BYTE; } else { massert(header.pf.rmask == 0xFF0000 && header.pf.gmask == 0xFF00 && header.pf.bmask == 0xFF); mInternalFormat = GL_RGB8; mFormat = GL_BGR; mDataType = GL_UNSIGNED_BYTE; } } else { uint blockSizeInBytes = 16; switch (mCompressionType) { case COMPRESSION_DXT1: blockSizeInBytes = 8; if (header.pf.flags & DDPF_ALPHAPIXELS) { mInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; } else { mInternalFormat = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; } break; case COMPRESSION_DXT3: mInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break; case COMPRESSION_DXT5: mInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break; default: // Not Supported (DXT2, DXT4 or any compression format) massert(false); } } [SNIPPET 2: Uploading into video memory] massert(mData != NULL); glGenTextures(1, &mHandle); massert(mHandle!=0); glBindTexture(GL_TEXTURE_2D, mHandle); commitFiltering(); uint offset = 0; Renderer* renderer = Renderer::getInstance(); switch (mInternalFormat) { case GL_RGB: case GL_RGBA: case GL_RGB8: case GL_RGBA8: for (uint i = 0; i < mMipmapCount + 1; ++i) { uint width = std::max(1U, mWidth >> i); uint height = std::max(1U, mHeight >> i); glTexImage2D(GL_TEXTURE_2D, i, mInternalFormat, width, height, mHasBorder, mFormat, mDataType, &mData[offset]); offset += width * height * (mBitsPerPixel / 8); } break; case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT: case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: { uint blockSize = 16; if (mInternalFormat == GL_COMPRESSED_RGB_S3TC_DXT1_EXT || mInternalFormat == GL_COMPRESSED_RGBA_S3TC_DXT1_EXT) { blockSize = 8; } uint width = mWidth; uint height = mHeight; for (uint i = 0; i < mMipmapCount + 1; ++i) { uint nBlocks = ((width + 3) / 4) * ((height + 3) / 4); // Only POT textures allowed for mipmapping massert(width % 4 == 0 && height % 4 == 0); glCompressedTexImage2D(GL_TEXTURE_2D, i, mInternalFormat, width, height, mHasBorder, nBlocks * blockSize, &mData[offset]); offset += nBlocks * blockSize; if (width <= 4 && height <= 4) { break; } width = std::max(4U, width / 2); height = std::max(4U, height / 2); } break; } default: // Not Supported massert(false); } Also I don't understand the "+3" in the block size computation but looking for a solution for my problema I've encountered people defining it as that. I guess it won't make a differente for POT textures but I put just in case. Thanks.

    Read the article

  • After the update today no graphical interface anymore - 12.04

    - by Mark
    I installed the updates through the update manager today. I shut down my Laptop and now after starting it up again, I only get terminal access to advices. Grub is loading fine and after I picked Ubuntu 12.04 the screen get blank and I am asked to log in with my username and password in command line mode. If I log in I am still in command line mode. How do I get the "normal (graphical)" Ubuntu back? I hope you know what I mean. Since English is not my first language I can't explain this the way I would like to. Mark

    Read the article

  • Bluescreen after Ubuntu 12.10 installation, after recommended boot repair "no filesystem found" please help!

    - by Phil
    After I tried to install Ubuntu 12.10 into my Windows 7 a black screen came up and nothing happened for over five minutes. So I force shutdown my computer and started again on the linux CD. I partitioned the Linux partitions manually and installed Ubuntu. At the next reboot I got a bluescreen from Windows three secounds after loading. I tried to repair the problem by using boot-repair. Then I got out the url: http://paste.ubuntu.com/1430803 And after the next restart he told me that he didn't found the filesystem. Because he didn't found the filesystem it was unable to repair it with the windows CD. Then I tried to repair it with TestDisk and was able to change the Windows Partition into NTFS, but I was not able to repair the windows 7 boot partition. Now I get the message that No Bootloader is found when I restart. Please help me.

    Read the article

  • How can I "filter" postfix-generated bounce messages?

    - by Flimzy
    We are using postfix 2.7 and custom SMTPD (based on qpsmtpd) in highly customized configuration for spam filtering. We have a new requirement to filter postfix-generated bounces through our custom qpsmtpd process (not so much for content filtering, but to process these bounces accordingly). Our current configuration looks (in part) like this: main.cf (only customizations shown): 2526 inet n - - - 0 cleanup pickup fifo n - - 60 1 pickup -o content_filter=smtp:127.0.0.2 Our smtpd injects messages to postfix on port 2526, by speaking directly to the cleanup daemon. And the custom pickup command instructs postfix to hand off all locally-generated mail (from cron, nagios, or other custom scripts) to our custom smtpd. The problem is that this configuration does not affect postfix generated bounce messages, since they do not go through the pickup daemon. I have tried adding the same content_filter option to the bounce daemon commands, but it does not seem to have any effect: bounce unix - - - - 0 bounce -o content_filter=smtp:127.0.0.2 defer unix - - - - 0 bounce -o content_filter=smtp:127.0.0.2 trace unix - - - - 0 bounce -o content_filter=smtp:127.0.0.2 For reference, here is my main.cf file, as well: biff = no # TLS parameters smtpd_tls_loglevel = 0 smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache smtp_tls_security_level = may mydestination = $myhostname alias_maps = proxy:pgsql:/etc/postfix/dc-aliases.cf transport_maps = proxy:pgsql:/etc/postfix/dc-transport.cf # This is enforced on incoming mail by QPSMTPD, so this is simply # the upper possible bound (also enforced in defaults.pl) message_size_limit = 262144000 mailbox_size_limit = 0 # We do our own message expiration, but if we set this to 0, then postfix # will try each mail delivery only once, so instead we set it to 100 days # (which is the max postfix seems to support) maximal_queue_lifetime = 100d hash_queue_depth = 1 hash_queue_names = deferred, defer, hold I also tried adding the internal_mail_filter_classes option to main.cf, but also tono affect: internal_mail_filter_classes = bounce,notify I am open to any suggestions, including handling our current content-filtering-loop in a different way. If it's not clear what I'm asking, please let me know, and I can try to clarify.

    Read the article

  • Update drivers for TL-WN851ND

    - by Tony_GPR
    Today I bought a new PCI wireless card, TP-Link WN851ND, with Atheros AR9227 chipset. It has 2 antennas and is compatible with Wifi N so I thought it would improve the quality of the signal. But after install it on my computer the result is the opposite to expected. It doesn't connect to my network, while my old Wifi BG card connect without problems, I created an access point from my smartphone to try the card, and work, but is very slow loading pages. In Windows 7 works perfectly, so I think the problem is the driver. I have Ubuntu 12.04 LTS with kernel 3.2.0.31, is there a way to update the driver or I can apply a patch to improve the performance of the card? Otherwise, anyone know if there is a work in progress to improve compatibility with this chipset, or is it better to change the card and buy one with better driver compatibility. And finally, which wireless N compatible chipsets have good support under Linux/Ubuntu?

    Read the article

  • "Ubuntu One" Value could not be retrieved. (ValueError: cannot convert float NaN to integer)

    - by SimoneRaso
    When I try to start Ubuntu one (after the registration) I receive the this error. Plus it keeps saying "loading.." I am using Ubuntu 11.10 freshly installed. I've try to reinstall ubuntuone after remove them from "ubuntu software center" and remove all the entri ubuntuone* from synaptic. Only the last slice of the ubuntu one control panel seems responding and display "Value could not be retrieved. (ValueError: cannot convert float NaN to integer)". After I reinstall completely ubuntu and when I retry, receive the same. tank's

    Read the article

  • How do I reuse a state machine in a slightly different way?

    - by JoJo
    Problem I have a big state machine. The design requirements of the project have changed such that I need to re-use this state machine in another place. All the states remain the same in this new place, but a few states run slightly different stuff. What design pattern allows me to reuse this state machine? Motivation I am building a video player. It is modeled by a state machine with these states: stopped, loading, playing, paused, crashed, and some more... This video player needs to be used on two web pages. When the player crashes on the first page, it should show an error message below. If the player crashes on the second page, the error message should appear in the center of the video and pulsate a few times.

    Read the article

  • How can I manage changes between a local config file and a remote config file in a mobile application?

    - by hib
    I have an application with a configuration file that is stored in the application bundle. This config file stores the names of images on a remote server. Whenever the application is started, I download the configuration file from the server and see if there are any changes or updates. If there are changes, I iterate over the array of configuration settings and download the changed images to the user's iPhone I think that I will first list all of the name changes in an array, and after that start loading that changed images. However, I'm wondering if there is a better approach to solving this problem.

    Read the article

  • Windows 7 doesnt boot after installing Ubuntu 12.10 (Asus Zenbook Prime / UEFI problem)

    - by jpdus
    Today I installed Ubuntu and since then i cannot boot into Windows anymore. I used the "standard" option (didnt change any partitions manually, just entered the size) but used the UEFI-mode. At first the GRUB entries for Windows did not work at all, after reading this thead i was able to add a new Grub entry - now i can get into the "windows-loading" screen for a few seconds but then i always see some kind of bluescreen for a fraction of a second and the laptop reboots. I can get into the windows recovery partition but the only option there is to reset everything to factory settings (+erase all data). I have no idea how to get into the Windows 7 repair mode which was mentioned here (tried everything else in this thread too - no success). My boot info can be found here: http://paste.ubuntu.com/1411573/ I have no idea what went wrong (there is even an extra page for the Zenbook Prime where no installation problems are mentioned). I would appreciate any help/ideas, many thanks!

    Read the article

  • Moonlight stopped working on tvp.pl

    - by Oliverka
    Hello, I'm watching The Bold and the beautiful on the site: http://www.tvp.pl/seriale/obyczajowe/moda-na-sukces/wideo Yesterday I wanted to view next episode, however it didn't work. I checked various episodes from other points in time and none works. The "dots" that appear when a Silverlight video is loading are present, but after them there is only black screen (of death). I'm using Ubuntu Lucid Lynx 32 bit with GNOME2 and firefox 3.6. I have all updates done. Could somebody check if any video is working for them and tell me their setup, please? I'm using Moonlight 3. Two days ago everything was fine but later this problem appeared.

    Read the article

  • Application use on website

    - by Palmer
    Is there a good way to run a C# application on clientside in lieu of JavaScript? I have done some front end work with JavaScript and backend C# for web developing at an old job, but I am interested in hosting a website myself soon. I have a C# application I would like to be open source, but before people care to download I'd like them to be able to use it. At its basic level it's a simple text editor, but there's much more to it in the nitty gritty. I could write it in JavaScript, but it would require me to keep documentation and up to date changes on JavaScript and C# in that case. I was thinking of creating an AJAX panel and somehow loading my winform application into a frame, but I don't know how or what words to google because I've never done it before except AJAX.

    Read the article

  • Steam, launching Team Fortress 2: libGL.so.1: wrong ELF class: ELFCLASS64

    - by stefanhgm
    After I got Steam running with the workaround mentioned here, I've got nearly the same problem when launching Team Fortress 2. After starting it from Steam the "Launcher" pops up and after a few seconds it disappears with the following error in the terminal: /home/user/Steam/SteamApps/steamuser/Team Fortress 2/hl2_linux: error while loading shared libraries: libGL.so.1: wrong ELF class: ELFCLASS64 Game removed: AppID 440 "Team Fortress 2", ProcID 5299 saving roaming config store to 'sharedconfig.vdf' roaming config store 2 saved successfully Because of the similarity with the workaround I used before, I tried to execute: export LD_LIBRARY_PATH=/usr/lib32:$LD_LIBRARY_PATH directly before launching the game, but there is no difference.

    Read the article

  • Pendrive USB Ubuntu installation - black screen on boot

    - by ubuntico
    I see many posts on this, but no solution. I installed Ubuntu 12.04 on my 16GB USB flash drive using this official link using their tool Universal USB Installer. Installation to USB went fine so I set my laptop to boot from USB and the Ubuntu was recognized. I saw the usual boot screen and I chose option "Run Ubuntu from this USB". The boot process started and after 5-6 seconds the screen goes black and non-responsive. I thought that it hang on X loading so I tried switching to console via Ctrl+Alt+F1-6 but the system did not respond. Why is this happening? Am I doing something wrong? PS. My laptop is HP Pavillion G6

    Read the article

  • Web Page Execution Internals

    - by octopusgrabbus
    My question is what is the subject area that covers web page execution/loading. I am looking to purchase a book by subject area that covers when things execute or load in a web page, whether it's straight html, html and Javascript, or a PHP page. Is that topic covered by a detailed html book, or should I expect to find information like that in a JavaScript of PHP book? I understand that PHP and Perl execute on the server and that Javascript is client side, and I know there is a lot of on-line documentation describing <html>, <head>, <body>, and so on. I'm just wondering what subject area a book would be in to cover all that, not a discussion of the best book or someone's favorite book, but the subject area.

    Read the article

  • Is there a ".d" directory to use to load modules at boot time, opposed to /etc/modules?

    - by gertvdijk
    I am automating some configurations on my systems using Puppet. For a group of machines I want to load a kernel module at boot time. The most elegant way seems to edit /etc/modules and add one on an individual line. However, I would like to use separate files in a ".d" directory structure for easier maintainability. For modprobe and specifying the options for modules, there's /etc/modprobe.d/, but what's the most elegant way for actually loading modules at boot time using a single new file? Basically, I'm looking for the non-existing /etc/modules.d/ directory. Any suggestions?

    Read the article

  • Abandoment to blame for the last JavaScript file not always being loaded?

    - by Larsenal
    I have a code snippet for an app that users are loading as a 3rd party script on their site. The general sequence is as follows: Site loads http://www.example.com/foo.js foo.js does stuff 1 to 2 seconds later, foo.js loads bar.js Now in a perfect world, I'd want to see matching counts for the calls to foo.js and bar.js. However, bar.js loads only about 94% of the time. I'm wondering how much of this discrepancy might be attributable to site abandonment given the fact that bar.js is delayed by 1 or 2 seconds. I posted here instead of StackOverflow since I think it's more a question about what would be typical time on page when users abandon the page.

    Read the article

  • Live CD won't start with UEFI

    - by skytreader
    I'm trying to dual boot my Windows 8 machine with Ubuntu 12.04 but I cannot even get to the Live CD under UEFI. I've already set my UEFI boot loader to load from the DVD drive before anything else but it keeps on loading Windows 8 first thing. I've checked that the Ubuntu installer I am using is working by setting the BIOS to legacy boot; under this setting, I can get to the Live CD but it cannot detect Windows 8---something I do not want to happen. Just for the record, my boot order is as follows: ATAPI CDROM: HL-DL-ST DVDRAM GT51N USB CDROM: USB FDD USB HDD HDD: TOSHIBA [SERIAL NUMBER] Network Boot-IPV4: Network Boot-IPV6 Windows Boot Manager Has anyone ran into the same problems as me for UEFI? What am I missing here?

    Read the article

  • Texture not drawing on cubes

    - by Christian Frantz
    I can draw the cubes fine but they are just solid black besides the occasional lighting that goes on. The basic effect is being set for each cube also. public void Draw(BasicEffect effect) { foreach (EffectPass pass in effect.CurrentTechnique.Passes) { pass.Apply(); device.SetVertexBuffer(vertexBuffer); device.Indices = indexBuffer; device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0, 8, 0, 12); } } The cubes draw method. TextureEnabled is set to true in my main draw method. My texture is also loading fine. public Cube(GraphicsDevice graphicsDevice, Vector3 Position, Texture2D Texture) { device = graphicsDevice; texture = Texture; cubePosition = Position; effect = new BasicEffect(device); } The constructor seems fine too. Could this be caused by the Vector2's of my VertexPositionNormalTexture? Even if they were out of order something should still be drawn other than a black cube

    Read the article

  • Tip #19 Module Private Visibility in OSGi

    - by ByronNevins
    I hate public and protected methods and classes.  It requires so much work to change them in a huge project like GlassFish.  Not to mention that you may well have to support those APIs forever.  They are highly overused in GlassFish.  In fact I'd bet that > 95% of classes are marked as public for no good reason.  It's just (bad) habit is my guess. private and default visibility (I call it package-private) is easier to maintain.  It is much much easier to change such classes and methods around.  If you have ANY public method or public class in GlassFish you'll need to grep through a tremendous amount of source code to find all callers.  But even that won't be theoretically reliable.  What if a caller is using reflection to access public methods?  You may never find such usages. If you have package private methods, it's easy.  Simply grep through all the code in that one package.  As long as that package compiles ok you're all set.  There can' be any compile errors anywhere else.  It's a waste of time to even look around or build the "outside" world.  So you may be thinking: "Aha!  I'll just make my module have one giant package with all the java files.  Then I can use the default visibility and maintenance will be much easier.  But there's a problem.  You are wasting a very nice feature of java -- organizing code into separate packages.  It also makes the code much more encapsulated.  Unfortunately to share code between the packages you have no choice but to declare public visibility. What happens in practice is that a module ends up having tons of public classes and methods that are used exclusively inside the module.  Which finally brings me to the point of this blog:  If Only There Was A Module-Private Visibility Available Well, surprise!  There is such a mechanism.  If your project is running under OSGi that is.  Like GlassFish does!  With this mechanism you can easily add another level of visibility by telling OSGi exactly which public you want to be exposed outside of the module.  You get the best of both worlds: Better encapsulation of your code so that maintenance is easier and productivity is increased. Usage of public visibility inside the module so that you can encapsulate intra-module better with packages. How I do this in GlassFish: Carefully plan out at least one package that will contain "true" publics.  This is the package that will be exported by OSGi.  I recommend just one package. Here is how to tell OSGi to use it in GlassFish -- edit osgi.bundle like so:-exportcontents:     org.glassfish.mymodule.truepublics;  version=${project.osgi.version} Now all publics declared in any other packages will be visible module-wide but not outside the module. There is one caveat: Accessing "module-private" items outside of the module is controlled at run-time, not compile-time.  The compiler has no clue that a public in a dependent module isn't really public.  it will happily compile it.  At runtime you will definitely see fireworks.  The good news is that you don't have to wait for the code path that tries to use the "module-private" items to fire.  OSGi will complain loudly when that module gets loaded.  OSGi will refuse to load it.  You will see an error like this: remote failure: Error while loading FOO: Exception while adding the new configuration : Error occurred during deployment: Exception while loading the app : org.osgi.framework.BundleException: Unresolved constraint in bundle com.oracle.glassfish.miscreant.code [115]: Unable to resolve 115.0: missing requirement [115.0] osgi.wiring.package; (osgi.wiring.package=org.glassfish.mymodule.unexported). Please see server.log for more details. That is if you accidentally change code in module B to use a public that is really a "module-private" in module A, then you will see the error immediately when you try to test whatever you were changing in module B.

    Read the article

< Previous Page | 118 119 120 121 122 123 124 125 126 127 128 129  | Next Page >