Search Results

Search found 21947 results on 878 pages for 'static import'.

Page 30/878 | < Previous Page | 26 27 28 29 30 31 32 33 34 35 36 37  | Next Page >

  • Can we call methods of non-static classes without an object in Java?

    - by ask
    In Java, the wrapper class Integer has the static method parseInt() which is used like this: Integer.parseInt(). I thought only methods of static classes could be called like this (ie. Class.doMethod()). All non-static classes need objects to be instantiated to use their methods. I checked the API, and apparently Integer is declared as public final Integer - not static. Someone please help me understand this.

    Read the article

  • best alternative to in-definition initialization of static class members? (for SVN keywords)

    - by Jeff
    I'm storing expanded SVN keyword literals for .cpp files in 'static char const *const' class members and want to store the .h descriptions as similarly as possible. In short, I need to guarantee single instantiation of a static member (presumably in a .cpp file) to an auto-generated non-integer literal living in a potentially shared .h file. Unfortunately the language makes no attempt to resolve multiple instantiations resulting from assignments made outside class definitions and explicitly forbids non-integer inits inside class definitions. My best attempt (using static-wrapping internal classes) is not too dirty, but I'd really like to do better. Does anyone have a way to template the wrapper below or have an altogether superior approach? // Foo.h: class with .h/.cpp SVN info stored and logged statically class Foo { static Logger const verLog; struct hInfoWrap; public: static hInfoWrap const hInfo; static char const *const cInfo; }; // Would like to eliminate this per-class boilerplate. struct Foo::hInfoWrap { hInfoWrapper() : text("$Id$") { } char const *const text; }; ... // Foo.cpp: static inits called here Foo::hInfoWrap const Foo::hInfo; char const *const Foo::cInfo = "$Id$"; Logger const Foo::verLog(Foo::cInfo, Foo::hInfo.text); ... // Helper.h: output on construction, with no subsequent activity or stored fields class Logger { Logger(char const *info1, char const *info2) { cout << info0 << endl << info1 << endl; } }; Is there a way to get around the static linkage address issue for templating the hInfoWrap class on string literals? Extern char pointers assigned outside class definitions are linguistically valid but fail in essentially the same manner as direct member initializations. I get why the language shirks the whole resolution issue, but it'd be very convenient if an inverted extern member qualifier were provided, where the definition code was visible in class definitions to any caller but only actually invoked at the point of a single special declaration elsewhere. Anyway, I digress. What's the best solution for the language we've got, template or otherwise? Thanks!

    Read the article

  • Wifi installation issues on Ubuntu 10.10

    - by SlyrNemesis
    Linux newbie here, anyway so here is the problem, I run Ubuntu 10.10 and I have a Sitecom 300N x2 Wireless Network dongle with chipset 8192SU, I used ndiswrapper to install my Windows Wireless driver because Sitecom doesn't have a linux driver, it says hardware present but it doesn't find any Wireless networks, nor does it connect to one. What can I do? The command "dmesg | grep ndis" gave this output in the terminal: [ 9.999954] ndiswrapper version 1.56 loaded (smp=yes, preempt=no) [ 11.111901] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisAllocateNetBufferAndNetBufferList' [ 11.111973] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMIndicateReceiveNetBufferLists' [ 11.112099] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMRegisterMiniportDriver' [ 11.112161] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisAllocateMdl' [ 11.112220] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMDeregisterMiniportDriver' [ 11.112280] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisFreeNetBufferListPool' [ 11.112339] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisAllocateNetBufferListPool' [ 11.112399] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisFreeMdl' [ 11.112457] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMAllocatePort' [ 11.112515] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMNetPnPEvent' [ 11.112573] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMFreePort' [ 11.112631] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMSendNetBufferListsComplete' [ 11.112780] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMSetMiniportAttributes' [ 11.112848] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisOpenConfigurationEx' [ 11.112946] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMIndicateStatusEx' [ 11.113017] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMOidRequestComplete' [ 11.113112] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisAllocateMemoryWithTagPriority' [ 11.113200] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisAllocateIoWorkItem' [ 11.113271] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisFreeIoWorkItem' [ 11.113342] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisQueueIoWorkItem' [ 11.113413] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisFreeNetBufferList' [ 11.113481] ndiswrapper (import:233): unknown symbol: WDFLDR.SYS:'WdfVersionBind' [ 11.113547] ndiswrapper (import:233): unknown symbol: WDFLDR.SYS:'WdfVersionBindClass' [ 11.113613] ndiswrapper (import:233): unknown symbol: WDFLDR.SYS:'WdfVersionUnbindClass' [ 11.113680] ndiswrapper (import:233): unknown symbol: WDFLDR.SYS:'WdfVersionUnbind' [ 11.113742] ndiswrapper (load_sys_files:206): couldn't prepare driver 'net8192su' [ 11.148888] ndiswrapper (load_wrap_driver:108): couldn't load driver net8192su; check system log for messages from 'loadndisdriver' [ 11.365200] usbcore: registered new interface driver ndiswrapper [ 12.818573] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.819183] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.819796] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.820505] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.821115] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.821726] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.822339] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.822948] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.823560] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.824204] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy

    Read the article

  • Wifi installation issues with a Sitecom 300N x2 Wireless Network dongle

    - by SlyrNemesis
    Linux newbie here, anyway so here is the problem, I run Ubuntu 10.10 and I have a Sitecom 300N x2 Wireless Network dongle with chipset 8192SU, I used ndiswrapper to install my Windows Wireless driver because Sitecom doesn't have a linux driver, it says hardware present but it doesn't find any Wireless networks, nor does it connect to one. What can I do? The command "dmesg | grep ndis" gave this output in the terminal: [ 9.999954] ndiswrapper version 1.56 loaded (smp=yes, preempt=no) [ 11.111901] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisAllocateNetBufferAndNetBufferList' [ 11.111973] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMIndicateReceiveNetBufferLists' [ 11.112099] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMRegisterMiniportDriver' [ 11.112161] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisAllocateMdl' [ 11.112220] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMDeregisterMiniportDriver' [ 11.112280] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisFreeNetBufferListPool' [ 11.112339] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisAllocateNetBufferListPool' [ 11.112399] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisFreeMdl' [ 11.112457] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMAllocatePort' [ 11.112515] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMNetPnPEvent' [ 11.112573] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMFreePort' [ 11.112631] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMSendNetBufferListsComplete' [ 11.112780] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMSetMiniportAttributes' [ 11.112848] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisOpenConfigurationEx' [ 11.112946] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMIndicateStatusEx' [ 11.113017] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMOidRequestComplete' [ 11.113112] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisAllocateMemoryWithTagPriority' [ 11.113200] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisAllocateIoWorkItem' [ 11.113271] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisFreeIoWorkItem' [ 11.113342] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisQueueIoWorkItem' [ 11.113413] ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisFreeNetBufferList' [ 11.113481] ndiswrapper (import:233): unknown symbol: WDFLDR.SYS:'WdfVersionBind' [ 11.113547] ndiswrapper (import:233): unknown symbol: WDFLDR.SYS:'WdfVersionBindClass' [ 11.113613] ndiswrapper (import:233): unknown symbol: WDFLDR.SYS:'WdfVersionUnbindClass' [ 11.113680] ndiswrapper (import:233): unknown symbol: WDFLDR.SYS:'WdfVersionUnbind' [ 11.113742] ndiswrapper (load_sys_files:206): couldn't prepare driver 'net8192su' [ 11.148888] ndiswrapper (load_wrap_driver:108): couldn't load driver net8192su; check system log for messages from 'loadndisdriver' [ 11.365200] usbcore: registered new interface driver ndiswrapper [ 12.818573] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.819183] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.819796] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.820505] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.821115] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.821726] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.822339] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.822948] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.823560] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy [ 12.824204] Modules linked in: snd_wavefront snd_emu10k1(+) snd_cs4236 snd_usb_audio snd_wss_lib snd_opl3_lib snd_ac97_codec ac97_bus nouveau(+) snd_pcm i915 snd_usbmidi_lib snd_util_mem snd_page_alloc snd_hwdep snd_mpu401 snd_mpu401_uart snd_seq_midi snd_rawmidi ttm snd_seq_midi_event drm_kms_helper snd_seq ppdev snd_timer snd_seq_device drm ndiswrapper snd parport_pc emu10k1_gp intel_agp ns558 gameport soundcore i2c_algo_bit shpchp lp video output agpgart parport usbhid hid 8139too 8139cp mii floppy

    Read the article

  • Dynamically Changing the Display Names of Menus and Popups

    - by Geertjan
    Very interesting thing and handy to know when needed is the fact that "menuText" and "popupText" (from org.openide.awt.ActionRegistration) can be changed dynamically, via "putValue" as shown below for "popupText". The Action class, in this case, needs to be eager, hence you won't receive the object of interest via the constructor, but you can easily use the global Lookup for that purpose instead, as also shown below. import java.awt.event.ActionEvent; import java.text.DateFormat; import java.text.SimpleDateFormat; import javax.swing.AbstractAction; import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectInformation; import org.netbeans.api.project.ProjectUtils; import org.openide.awt.ActionID; import org.openide.awt.ActionReference; import org.openide.awt.ActionRegistration; import org.openide.util.Utilities; @ActionID( category = "Project", id = "org.ptt.DemoProjectAction") @ActionRegistration( lazy = false, displayName = "NOT-USED") @ActionReference(path = "Projects/Actions", position = 0) public final class DemoProjectAction extends AbstractAction{ private final ProjectInformation context; public DemoProjectAction() { putValue("popupText", "Select Me To See Current Time!"); context = ProjectUtils.getInformation( Utilities.actionsGlobalContext().lookup(Project.class)); } @Override public void actionPerformed(ActionEvent e) { refresh(); } protected void refresh() { DateFormat formatter = new SimpleDateFormat("HH:mm:ss"); String formatted = formatter.format(System.currentTimeMillis()); putValue("popupText", "Time: " + formatted + " (" + context.getDisplayName() +")"); } } Now, let's do something semi useful and display, in the popup, which is available when you right-click a project, the time since the last change was made anywhere in the project, i.e., we can listen recursively to any changes done within a project and then update the popup with the newly acquired information, dynamically: import java.awt.event.ActionEvent; import java.text.DateFormat; import java.text.SimpleDateFormat; import javax.swing.AbstractAction; import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectUtils; import org.openide.awt.ActionID; import org.openide.awt.ActionReference; import org.openide.awt.ActionRegistration; import org.openide.filesystems.FileAttributeEvent; import org.openide.filesystems.FileChangeListener; import org.openide.filesystems.FileEvent; import org.openide.filesystems.FileRenameEvent; import org.openide.util.Utilities; @ActionID( category = "Project", id = "org.ptt.TrackProjectTimerAction") @ActionRegistration( lazy = false, displayName = "NOT-USED") @ActionReference( path = "Projects/Actions", position = 0) public final class TrackProjectTimerAction extends AbstractAction implements FileChangeListener { private final Project context; private Long startTime; private Long changedTime; private DateFormat formatter; public TrackProjectTimerAction() { putValue("popupText", "Enable project time tracker"); this.formatter = new SimpleDateFormat("HH:mm:ss"); context = Utilities.actionsGlobalContext().lookup(Project.class); context.getProjectDirectory().addRecursiveListener(this); } @Override public void actionPerformed(ActionEvent e) { startTimer(); } protected void startTimer() { startTime = System.currentTimeMillis(); String formattedStartTime = formatter.format(startTime); putValue("popupText", "Timer started: " + formattedStartTime + " (" + ProjectUtils.getInformation(context).getDisplayName() + ")"); } @Override public void fileChanged(FileEvent fe) { changedTime = System.currentTimeMillis(); formatter = new SimpleDateFormat("mm:ss"); String formattedLapse = formatter.format(changedTime - startTime); putValue("popupText", "Time since last change: " + formattedLapse + " (" + ProjectUtils.getInformation(context).getDisplayName() + ")"); startTime = changedTime; } @Override public void fileFolderCreated(FileEvent fe) {} @Override public void fileDataCreated(FileEvent fe) {} @Override public void fileDeleted(FileEvent fe) {} @Override public void fileRenamed(FileRenameEvent fre) {} @Override public void fileAttributeChanged(FileAttributeEvent fae) {} }

    Read the article

  • Why does Celery work in Python shell, but not in my Django views? (import problem)

    - by TIMEX
    I installed Celery (latest stable version.) I have a directory called /home/myuser/fable/jobs. Inside this directory, I have a file called tasks.py: from celery.decorators import task from celery.task import Task class Submitter(Task): def run(self, post, **kwargs): return "Yes, it works!!!!!!" Inside this directory, I also have a file called celeryconfig.py: BROKER_HOST = "localhost" BROKER_PORT = 5672 BROKER_USER = "abc" BROKER_PASSWORD = "xyz" BROKER_VHOST = "fablemq" CELERY_RESULT_BACKEND = "amqp" CELERY_IMPORTS = ("tasks", ) In my /etc/profile, I have these set as my PYTHONPATH: PYTHONPATH=/home/myuser/fable:/home/myuser/fable/jobs So I run my Celery worker using the console ($ celeryd --loglevel=INFO), and I try it out. I open the Python console and import the tasks. Then, I run the Submitter. >>> import fable.jobs.tasks as tasks >>> s = tasks.Submitter() >>> s.delay("abc") <AsyncResult: d70d9732-fb07-4cca-82be-d7912124a987> Everything works, as you can see in my console [2011-01-09 17:30:05,766: INFO/MainProcess] Task tasks.Submitter[d70d9732-fb07-4cca-82be-d7912124a987] succeeded in 0.0398268699646s: But when I go into my Django's views.py and run the exact 3 lines of code as above, I get this: [2011-01-09 17:25:20,298: ERROR/MainProcess] Unknown task ignored: "Task of kind 'fable.jobs.tasks.Submitter' is not registered, please make sure it's imported.": {'retries': 0, 'task': 'fable.jobs.tasks.Submitter', 'args': ('abc',), 'expires': None, 'eta': None, 'kwargs': {}, 'id': 'eb5c65b4-f352-45c6-96f1-05d3a5329d53'} Traceback (most recent call last): File "/home/myuser/mysite-env/lib/python2.6/site-packages/celery/worker/listener.py", line 321, in receive_message eventer=self.event_dispatcher) File "/home/myuser/mysite-env/lib/python2.6/site-packages/celery/worker/job.py", line 299, in from_message eta=eta, expires=expires) File "/home/myuser/mysite-env/lib/python2.6/site-packages/celery/worker/job.py", line 243, in __init__ self.task = tasks[self.task_name] File "/home/myuser/mysite-env/lib/python2.6/site-packages/celery/registry.py", line 63, in __getitem__ raise self.NotRegistered(str(exc)) NotRegistered: "Task of kind 'fable.jobs.tasks.Submitter' is not registered, please make sure it's imported." It's weird, because the celeryd client does show that it's registered, when I launch it. [2011-01-09 17:38:27,446: WARNING/MainProcess] Configuration -> . broker -> amqp://GOGOme@localhost:5672/fablemq . queues -> . celery -> exchange:celery (direct) binding:celery . concurrency -> 1 . loader -> celery.loaders.default.Loader . logfile -> [stderr]@INFO . events -> OFF . beat -> OFF . tasks -> . tasks.Decayer . tasks.Submitter Can someone help?

    Read the article

  • How Do I Import a 3D Object into Adobe Flex?

    - by Kim
    Hi everyone, I wanted to know if anyone here knows how to import a 3D Object (i.e. Maya 3D Model) into Adobe Flex Application? I needed to create a simple Flex application which will allow me to rotate the 3D Object by dragging but I cannot seem to start doing it because I'm having a hard time trying to figure out how I can import my 3D model into Flex. This is exactly what I wanted to do: 3D Object in Flex I hope someone can help me. Thanks a lot :)

    Read the article

  • Unity3D draw call optimization : static batching VS manually draw mesh with MaterialPropertyBlock

    - by Heisenbug
    I've read Unity3D draw call batching documentation. I understood it, and I want to use it (or something similar) in order to optimize my application. My situation is the following: I'm drawing hundreds of 3d buildings. Each building can be represented using a Mesh (or a SubMesh for each building, but I don't thing this will affect performances) Each building can be textured with several combinations of texture patterns(walls, windows,..). Textures are stored into an Atlas for optimizaztion (see Texture2d.PackTextures) Texture mapping and facade pattern generation is done in fragment shader. The shader can be the same (except for few values) for all buildings, so I'd like to use a sharedMaterial in order to optimize parameters passed to the GPU. The main problem is that, even if I use an Atlas, share the material, and declare the objects as static to use static batching, there are few parameters(very fews, it could be just even a float I guess) that should be different for every draw call. I don't know exactly how to manage this situation using Unity3D. I'm trying 2 different solutions, none of them completely implemented. Solution 1 Build a GameObject for each building building (I don't like very much the overhead of a GameObject, anyway..) Prepare each GameObject to be static batched with StaticBatchingUtility.Combine. Pack all texture into an atlas Assign the parent game object of combined batched objects the Material (basically the shader and the atlas) Change some properties in the material before drawing an Object The problem is the point 5. Let's say I have to assign a different id to an object before drawing it, how can I do this? If I use a different material for each object I can't benefit of static batching. If I use a sharedMaterial and I modify a material property, all GameObjects will reference the same modified variable Solution 2 Build a Mesh for every building (sounds better, no GameObject overhead) Pack all textures into an Atlas Draw each mesh manually using Graphics.DrawMesh Customize each DrawMesh call using a MaterialPropertyBlock This would solve the issue related to slightly modify material properties for each draw call, but the documentation isn't clear on the following point: Does several consecutive calls to Graphic.DrawMesh with a different MaterialPropertyBlock would cause a new material to be instanced? Or Unity can understand that I'm modifying just few parameters while using the same material and is able to optimize that (in such a way that the big atlas is passed just once to the GPU)?

    Read the article

  • Static site generator with web-based file manager?

    - by user234
    I'm checking around options of static web site generators which led me to lots of articles about them! However, no word is spoken on how to edit files through a browser; it's always assumed you have either DropBox or some FTPish or terminal access. The only generator I could find that includes a browser based admin screen is Kirby (getkirby.com, mentioned at modernstatic.com) Besides the application above, what setup would you recommend to have both static HTML generation and web-based file management? Thanks!

    Read the article

  • These Are Obvious Advantages and Disadvantages to Static As Well As Dynamic Sites

    You can find mostly these types of websites that are mostly developed these days and they are static sites as well as dynamic sites because there is various importance of each of these techniques. Which one you are going to opt should be as per your requirements for your website and generally if you want a website that is going to generate revenue with PPC or affiliate programs then you should go with a static site but in case you wish to create a website that will be more appealing to audience with more interactivity then a dynamic site...

    Read the article

  • Should the main game object be static in c++

    - by Som_kun
    I am creating a 2d platformer using SDL and I was thinking that my game object could be static, but I wasn't sure if this was a good idea. The pros (that I can see): Accessing settings options (such as screen size and keyboard bindings) would be easier accessed There should only ever be one main game loop, so this makes sure for me. The cons: From what I've heard, static classes in C++ are a bear to work with I've read that this may cause problems later in development (things don't work right or can't be used properly

    Read the article

  • Should I Have a Static Or Dynamic Website?

    Are you a business currently looking to get a website built, but don't know whether to get a static or dynamic one? In this article, I explain what the difference is between a static and dynamic website, and the questions you need to ask yourself to help decide which one will be best for your business's website.

    Read the article

  • Finding out if an IP address is static or dynamic?

    - by Joshua
    I run a large bulletin board and I get spammers every now and again. My moderation team does a good job filtering them out but every time I IP ban them they seem to come back (I'm pretty sure it's the same person on some occasions, as the post patterns are exactly the same as are the usernames) but I'm afraid to ban them by IP address every time. If they are on a dynamic IP address, I could be banning innocent users later down the line when they try to get to my forum through SERPs, but if I ban only via static IPs I know that I'm only banning that one person. So, is there a way to properly determine if an IP address is static or dynamic? Thanks.

    Read the article

  • Do I need to create static routes for my home network?

    - by SZU
    50.x.x.x assigned by Frontier 192.168.1.1 Actiontec (FiosModem/Router) 192.168.1.2 Voip 192.168.1.3 DLINK/DIR615 (WirelesRouter) 192.168.1.3 assigned by Actiontec 192.168.2.1 DLINK DIR615 (Hardwired to Actiontec) 192.168.2.194 Android 192.168.2.195 Vista-PC1 192.168.2.196 WIN7-PC2 192.168.2.197 Linksys-1 WRT54G/DDWRT(WirelessClient) 192.168.2.198 Linksys-2 WRT54G/DDWRT(WirelessClient) 192.168.2.199 DSi 192.168.2.197 assigned by DLINK 192.168.3.1 Linksys-1 WRT54G/DDWRT 192.168.3.100 Vista-PC3 192.168.2.198 assigned by DLINK 192.168.4.1 Linksys-2 WRT54G/DDWRT 192.168.4.100 Ubuntu-PC4 Above is my current setup. All PCs have Internet access. PC3 and PC4 cannot see each other and PC1/PC2 cannot see PC3/PC4. Do I need static routes between PC3 & PC4, PC1/PC2 & PC3/PC4? If how do I create the static routes?

    Read the article

  • Push, parse & import "selected" data, text, info blobs from Webpages/ Emails as Event/ Appointment to standard Calendar directly or as .ics file?

    - by Alex S
    Any tool, plugin, extension, script/ code to push "selected" data, text, information blobs from Web pages, Emails etc, then parsed and imported to structured Event, Appointment (e.g. .ics) on a standard Calendar like Outlook, Google, iCal? If not, what and how could I use some scripting, coding or existing tools, extensions to add on top and do this. I come across a lot of unstructured information on Webpages, Emails, FB events etc. where I just want to add that information to my Calendar. Instead of entering all the information by hand all the time, there should be an easy enough way to have the information get parsed, organized and imported to a Calendar... Either directly to a calendar from source or Translated to a standard format such as .ICS that can be imported & saved easily. Would love to see some suggestions for this incorporating one or more of the following: on Windows with Chrome & Outlook on iPhone/ iPad to its Calendar PS: I'll come back and see if I can add more information to this question and to answer it as well. I have not found a solution yet.

    Read the article

  • SQL SERVER – Enable Identity Insert – Import Expert Wizard

    - by pinaldave
    I recently got email from old friend who told me that when he tries to execute SSIS package it fails with some identity error. After some debugging and opening his package we figure out that he has following issue. Let us see what kind of set up he had on his package. Source Table with Identity column Destination Table with Identity column Following checkbox was disabled in Import Expert Wizard (as per the image below) What did we do is we enabled the checkbox described as above and we fixed the problem he was having due to insertion in identity column. The reason he was facing this error because his destination table had IDENTITY property which will not allow any  insert from user. This value is automatically generated by system when new values are inserted in the table. However, when user manually tries to insert value in the table, it stops them and throws an error. As we enabled the checkbox “Enable Identity Insert”, this feature allowed the values to be insert in the identity field and this way from source database exact identity values were moved to destination table. Let me know if this blog post was easy to understand. Reference: Pinal Dave (http://blog.SQLAuthority.com), Filed under: Pinal Dave, SQL, SQL Authority, SQL Query, SQL Server, SQL Tips and Tricks, SQL Utility, T SQL, Technology

    Read the article

  • 3DS Max 2012 OBJ file import missing polygons

    - by Vit
    I started learning OpenGL. I got to a point I want to import some "real" objects. After "Googling" I decided I will go with OBJ file for start, since it is simple to understand, and there are plenty of tutorials on how to read them properly. I have from university access to 3DS Max 2012. So I tried to create very simple model (just deformated cube) and exporting it using OBJ file, just to vertices and triangles for the moment, without textures, so I can examine its structure by myself. But if I imported it right back to 3DS from OBJ file, now it renders somewhat strange, like its smoothen, and with lightsource, even I have none in scene. But the geometry, its wireframe is intact. So I thought maybe it is problem of exporting only vertices and triangles so I downloaded Enterprise-D model from internet, exported with everything on (normals, textures everything), and again imported it. Now, some polygons are missing. So, I want to ask, am I doing something terribly wrong, or is there some incompatibility issue between .max and .obj file ? Even it is only simple textured model without any lightsources, animation etc.? Thanks. Edit: I tried objects with MeshLab, the first, deformated cube was absolutelly OK. But still bothers me that 3DS Max doesen´t render it properly. In Enterprise-D model, there are polygons missing even in MeshLab. I uploaded rar archive with .max model of Enterprise, same .obj model exported from 3DS, and obj model of deformated cube. Download here (2.5 MB, filesonic).

    Read the article

  • A question about the cobbler-ubuntu-import bash script

    - by user183394
    I have been testing the latest cobbler for PXE booting Ubuntu 12.04.1-server-x86_64 and 12.10-server-x86_64 using a Scentific Linux 6.3 host to run the cobbler server. With the former, I got everything going. But with the later, I haven't been successful. As an attempt to figure things out, I downloaded Ubuntu's cobbler 2.2.2 source package. Examining the content, I soon noticed that Ubuntu's cobbler 2.2.2 came with a cobbler-ubuntu-import bash script. I reviewed the code and spotted something interesting: line 9 of the script states: 9 AUTO_KOPTS='log_host=@@server@@ log_port=514 priority=critical locale=en_US netcfg/choose_interface=auto' But after extensive googling, reading both Debian and Ubuntu's documentation about the debian-installer, I don't see these two kopts log_host and log_port documented anywhere. Putting it in the profile of my current test setup, even my cobbler server host does run rsyslogd, I don't see anything logged either. No, I don't have iptables and selinux on on the cobbler server host. Can anyone point to me where I can read more about these two options? Having the ability to log an installation to a remote central logging host would be really cool.

    Read the article

  • Config import on network-manager-openvpn

    - by Toki Tahmid
    I'm trying to use a free service using the OpenVPN protocol using OpenVPN's GUI module in the network manager. The config worked perfectly well as .ovpn on Windows. The behavior in Windows is such that I ran OpenVPN GUI and chose to connect to this particular VPN. It would then show the activity in the attempt to connect and opens a dialog box for username/password authentication. I've successfully imported all the configurations by changing the file type to .conf and using the import feature in network manager. However, attempting to connect would simply display the network manager's attempting to connect animation, but ultimately end with a notification of connection timing out. No prompt asking for authentication would appear at all, nor can I find any feature to prefix the authentication details. client dev tun proto tcp remote miami.proxpn.com 443 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key cipher BF-CBC keysize 512 comp-lzo verb 4 mute 5 tun-mtu 1500 mssfix 1450 auth-user-pass reneg-sec 0 # If you are connecting through an # HTTP proxy to reach the actual OpenVPN # server, put the proxy server/IP and # port number here. See the man page # if your proxy server requires # authentication. ;http-proxy-retry # retry on connection failures ;http-proxy [proxy server] [proxy port #] Needless to say, but I've downloaded all the required packages for setting up OpenVPN connections. By the way, as you can see above, .key and .crt files location are specified to be in the same directory as the config file. After importing the config file, if were to remove them, would it cause any problem? Note, I haven't removed them, so the problem I'm facing is not due to the absence of these files.

    Read the article

  • How to link Cocoa static library to C command line target?

    - by Devara Gudda
    I have static library target, which uses Foundation classes(NSArray,etc) . I want to use this static library in Command line tool target. The command line tool contains only C files. From command line tool I want to call a method exported in static library. So I have modified header search path and linked the static library. When I compile the command line tool it is following linker errors. Undefined symbols: "_OBJC_CLASS_$_NSMutableArray", referenced from: "_objc_msgSend", referenced from: What is the method to link a static library which uses Foundation classes from a command line tool which contains C files? Regards Devara Gudda

    Read the article

  • Why does PHP 5.2 disallow abstract static class methods?

    - by Artem Russakovskii
    After enabling strict warnings in PHP 5.2, I saw a load of strict standards warnings from a project that was originally written without strict warnings: Strict Standards: Static function Program::getSelectSQL() should not be abstract in Program.class.inc The function in question belongs to an abstract parent class Program and is declared abstract static because it should be implemented in its child classes, such as TVProgram. I did find references to this change here: Dropped abstract static class functions. Due to an oversight, PHP 5.0.x and 5.1.x allowed abstract static functions in classes. As of PHP 5.2.x, only interfaces can have them. My question is: can someone explain in a clear way why there shouldn't be an abstract static function in PHP?

    Read the article

  • How to Assign a Static IP Address in XP, Vista, or Windows 7

    - by Mysticgeek
    When organizing your home network it’s easier to assign each computer it’s own IP address than using DHCP. Here we will take a look at doing it in XP, Vista, and Windows 7. If you have a home network with several computes and devices, it’s a good idea to assign each of them a specific address. If you use DHCP (Dynamic Host Configuration Protocol), each computer will request and be assigned an address every time it’s booted up. When you have to do troubleshooting on your network, it’s annoying going to each machine to figure out what IP they have. Using Static IPs prevents address conflicts between devices and allows you to manage them more easily. Assigning IPs to Windows is essentially the same process, but getting to where you need to be varies between each version. Windows 7 To change the computer’s IP address in Windows 7, type network and sharing into the Search box in the Start Menu and select Network and Sharing Center when it comes up.   Then when the Network and Sharing Center opens, click on Change adapter settings. Right-click on your local adapter and select Properties. In the Local Area Connection Properties window highlight Internet Protocol Version 4 (TCP/IPv4) then click the Properties button. Now select the radio button Use the following IP address and enter in the correct IP, Subnet mask, and Default gateway that corresponds with your network setup. Then enter your Preferred and Alternate DNS server addresses. Here we’re on a home network and using a simple Class C network configuration and Google DNS. Check Validate settings upon exit so Windows can find any problems with the addresses you entered. When you’re finished click OK. Now close out of the Local Area Connections Properties window. Windows 7 will run network diagnostics and verify the connection is good. Here we had no problems with it, but if you did, you could run the network troubleshooting wizard. Now you can open the command prompt and do an ipconfig  to see the network adapter settings have been successfully changed.   Windows Vista Changing your IP from DHCP to a Static address in Vista is similar to Windows 7, but getting to the correct location is a bit different. Open the Start Menu, right-click on Network, and select Properties. The Network and Sharing Center opens…click on Manage network connections. Right-click on the network adapter you want to assign an IP address and click Properties. Highlight Internet Protocol Version 4 (TCP/IPv4) then click the Properties button. Now change the IP, Subnet mask, Default Gateway, and DNS Server Addresses. When you’re finished click OK. You’ll need to close out of Local Area Connection Properties for the settings to go into effect. Open the Command Prompt and do an ipconfig to verify the changes were successful.   Windows XP In this example we’re using XP SP3 Media Center Edition and changing the IP address of the Wireless adapter. To set a Static IP in XP right-click on My Network Places and select Properties. Right-click on the adapter you want to set the IP for and select Properties. Highlight Internet Protocol (TCP/IP) and click the Properties button. Now change the IP, Subnet mask, Default Gateway, and DNS Server Addresses. When you’re finished click OK. You will need to close out of the Network Connection Properties screen before the changes go into effect.   Again you can verify the settings by doing an ipconfig in the command prompt. In case you’re not sure how to do this, click on Start then Run.   In the Run box type in cmd and click OK. Then at the prompt type in ipconfig and hit Enter. This will show the IP address for the network adapter you changed.   If you have a small office or home network, assigning each computer a specific IP address makes it a lot easier to manage and troubleshoot network connection problems. Similar Articles Productive Geek Tips Change Ubuntu Desktop from DHCP to a Static IP AddressChange Ubuntu Server from DHCP to a Static IP AddressVista Breadcrumbs for Windows XPCreate a Shortcut or Hotkey for the Safely Remove Hardware DialogCreate a Shortcut or Hotkey to Eject the CD/DVD Drive TouchFreeze Alternative in AutoHotkey The Icy Undertow Desktop Windows Home Server – Backup to LAN The Clear & Clean Desktop Use This Bookmarklet to Easily Get Albums Use AutoHotkey to Assign a Hotkey to a Specific Window Latest Software Reviews Tinyhacker Random Tips HippoRemote Pro 2.2 Xobni Plus for Outlook All My Movies 5.9 CloudBerry Online Backup 1.5 for Windows Home Server Nice Websites To Watch TV Shows Online 24 Million Sites Windows Media Player Glass Icons (icons we like) How to Forecast Weather, without Gadgets Outlook Tools, one stop tweaking for any Outlook version Zoofs, find the most popular tweeted YouTube videos

    Read the article

  • C#/.NET Little Wonders: Static Char Methods

    - by James Michael Hare
    Once again, in this series of posts I look at the parts of the .NET Framework that may seem trivial, but can help improve your code by making it easier to write and maintain. The index of all my past little wonders posts can be found here. Often times in our code we deal with the bigger classes and types in the BCL, and occasionally forgot that there are some nice methods on the primitive types as well.  Today we will discuss some of the handy static methods that exist on the char (the C# alias of System.Char) type. The Background I was examining a piece of code this week where I saw the following: 1: // need to get the 5th (offset 4) character in upper case 2: var type = symbol.Substring(4, 1).ToUpper(); 3:  4: // test to see if the type is P 5: if (type == "P") 6: { 7: // ... do something with P type... 8: } Is there really any error in this code?  No, but it still struck me wrong because it is allocating two very short-lived throw-away strings, just to store and manipulate a single char: The call to Substring() generates a new string of length 1 The call to ToUpper() generates a new upper-case version of the string from Step 1. In my mind this is similar to using ToUpper() to do a case-insensitive compare: it isn’t wrong, it’s just much heavier than it needs to be (for more info on case-insensitive compares, see #2 in 5 More Little Wonders). One of my favorite books is the C++ Coding Standards: 101 Rules, Guidelines, and Best Practices by Sutter and Alexandrescu.  True, it’s about C++ standards, but there’s also some great general programming advice in there, including two rules I love:         8. Don’t Optimize Prematurely         9. Don’t Pessimize Prematurely We all know what #8 means: don’t optimize when there is no immediate need, especially at the expense of readability and maintainability.  I firmly believe this and in the axiom: it’s easier to make correct code fast than to make fast code correct.  Optimizing code to the point that it becomes difficult to maintain often gains little and often gives you little bang for the buck. But what about #9?  Well, for that they state: “All other things being equal, notably code complexity and readability, certain efficient design patterns and coding idioms should just flow naturally from your fingertips and are no harder to write then the pessimized alternatives. This is not premature optimization; it is avoiding gratuitous pessimization.” Or, if I may paraphrase: “where it doesn’t increase the code complexity and readability, prefer the more efficient option”. The example code above was one of those times I feel where we are violating a tacit C# coding idiom: avoid creating unnecessary temporary strings.  The code creates temporary strings to hold one char, which is just unnecessary.  I think the original coder thought he had to do this because ToUpper() is an instance method on string but not on char.  What he didn’t know, however, is that ToUpper() does exist on char, it’s just a static method instead (though you could write an extension method to make it look instance-ish). This leads me (in a long-winded way) to my Little Wonders for the day… Static Methods of System.Char So let’s look at some of these handy, and often overlooked, static methods on the char type: IsDigit(), IsLetter(), IsLetterOrDigit(), IsPunctuation(), IsWhiteSpace() Methods to tell you whether a char (or position in a string) belongs to a category of characters. IsLower(), IsUpper() Methods that check if a char (or position in a string) is lower or upper case ToLower(), ToUpper() Methods that convert a single char to the lower or upper equivalent. For example, if you wanted to see if a string contained any lower case characters, you could do the following: 1: if (symbol.Any(c => char.IsLower(c))) 2: { 3: // ... 4: } Which, incidentally, we could use a method group to shorten the expression to: 1: if (symbol.Any(char.IsLower)) 2: { 3: // ... 4: } Or, if you wanted to verify that all of the characters in a string are digits: 1: if (symbol.All(char.IsDigit)) 2: { 3: // ... 4: } Also, for the IsXxx() methods, there are overloads that take either a char, or a string and an index, this means that these two calls are logically identical: 1: // check given a character 2: if (char.IsUpper(symbol[0])) { ... } 3:  4: // check given a string and index 5: if (char.IsUpper(symbol, 0)) { ... } Obviously, if you just have a char, then you’d just use the first form.  But if you have a string you can use either form equally well. As a side note, care should be taken when examining all the available static methods on the System.Char type, as some seem to be redundant but actually have very different purposes.  For example, there are IsDigit() and IsNumeric() methods, which sound the same on the surface, but give you different results. IsDigit() returns true if it is a base-10 digit character (‘0’, ‘1’, … ‘9’) where IsNumeric() returns true if it’s any numeric character including the characters for ½, ¼, etc. Summary To come full circle back to our opening example, I would have preferred the code be written like this: 1: // grab 5th char and take upper case version of it 2: var type = char.ToUpper(symbol[4]); 3:  4: if (type == 'P') 5: { 6: // ... do something with P type... 7: } Not only is it just as readable (if not more so), but it performs over 3x faster on my machine:    1,000,000 iterations of char method took: 30 ms, 0.000050 ms/item.    1,000,000 iterations of string method took: 101 ms, 0.000101 ms/item. It’s not only immediately faster because we don’t allocate temporary strings, but as an added bonus there less garbage to collect later as well.  To me this qualifies as a case where we are using a common C# performance idiom (don’t create unnecessary temporary strings) to make our code better. Technorati Tags: C#,CSharp,.NET,Little Wonders,char,string

    Read the article

  • What are the pro and cons of statically linking a library?

    - by Mathieu Pagé
    Hi, I want to release an application I developed as a hobby both for Linux and Windows. This application depends on boost (and possibly other libraries). The norm for this kind of application (a chess engine) is to provide only an executable file and possibly some helper files. I tough it would be a good idea to statically link the libraries so the executable would not have any dependencies. So the end user can just put the executable in a directory and start using it. However, while doing some research online I found some negative comments about statically linking libraries, some even arguing that an application with statically linked libraries would be hardly portable, meaning that it would only run on my system of highly similar systems. So what are the pros and cons of statically linking library? I already know that the executable will be bigger. But I can't see why it would make my application less portable.

    Read the article

< Previous Page | 26 27 28 29 30 31 32 33 34 35 36 37  | Next Page >