Next Page: 10000

          

NLog

 Cache   

Originally posted on: http://staffofgeeks.net/afeng/archive/2006/07/31/86759.aspx#utm_source=googlier.com/page/2019_10_08/11224&utm_campaign=link&utm_term=googlier&utm_content=googlier.com

Logging is one of those things where once you have it, you never really pay much attention to it.  Today I decided to investigate what is new in the logging world since the last time I looked at it.  I heard of NLog some time ago, but never took the time to test drive it.  In the past I have always used log4net, so I decided to compare NLog to it.  Here are some of the things that I really like about NLog, and it might not be possible or “easy” to do with log4net:

 

Asynchronous Processing:

 

NLog provider wrapper and compound targets for asynchronous processing, loading balancing, buffering, and etc.

 

Easy Configuration:

 

The configuration file structure is simple and easier to write.  If you do not remember all the options, no worries, you will receive Intellisense in Visual Studio.

 

Include Files:

 

You can split up the configuration to multiple files by using the <include />.

 

Contextual Information:

 

Like all other logging frameworks, NLog is able to add contextual information when each message is logged.  You can use the contextual information to create a log file for each user, create one log file per day, one file per logger, or any combination.  Stack trace can also be included when each message is logged.

 

Not Swallowing Exceptions:

 

Sometimes it is useful to know when the logging framework is throwing an exception to prevent logging from happening; NLog can be configured not to swallow any exceptions.  It is useful to troubleshoot problems during deployment. 

 

Defining Variables in Configuration File:

 

Common value can be stored in a variable.  Great way to keep you configuration file DRY.

 

Note:  This is a superficial look at some of the features of NLog, and I have not worked with NLog extensively.


          

「非圧縮ファイル(WAVやAIFF)を音質の劣化なく70%から50%程圧縮」「QuickTimeのMOVファイル(.mov)かMP4ファイル(.m4a)に格納」「2011年10月、アップルはApple ロスレスをオープンソース化し、Apache License 2.0の下でソースコードを公開」

 Cache   
none
          

TVS Apache RTR 200 4V launched with Bluetooth tech

 Cache   

TVS Motor Company has announced the new TVS Apache RTR 200 4V with Bluetooth-enabled SmartXonnect mobile application technology. The motorcycle will be equipped with a connected cluster and a gold finish racing chain. TVS Apache RTR 200 4V SmartXonnect bluetooth features Bluetooth Connectivity (Android/iOS) TVS Connect Mobile App Dedicated information control switch Turn-by-turn Navigation Call […]

This article TVS Apache RTR 200 4V launched with Bluetooth tech was first published on IAMABIKER - Everything Motorcycle!.


          

Balakot braves awarded at the Indian Air Force Day celebrations 2019

 Cache   
The warriors of the Balakot strike awarded on the occasion of 87th Indian Air Force Day celebrations. The 87th Indian Air Force Day celebrations underway at Hindon Air Base, Ghaziabad. Today, Apache & Chinook aircrafts are to make debut in the Air Show. Subscribe to Times Now | Click Here ► http://goo.gl/#utm_source=googlier.com/page/2019_10_08/50823&utm_campaign=link&utm_term=googlier&utm_content=googlier.comU9ibPb Log on to […]
          

Indian Air Force Day celebrations & parade at Hindon Air Base, Ghaziabad

 Cache   
On the 87th Indian Air Force Day celebrations underway at Hindon Air Base, Ghaziabad. Today, Apache & Chinook aircrafts are to make debut in the Air Show. Watch visuals of the Indian Air Force Day Parade which occurred at Hindon Air Base, Ghaziabad. Subscribe to Times Now | Click Here ► http://goo.gl/#utm_source=googlier.com/page/2019_10_08/50833&utm_campaign=link&utm_term=googlier&utm_content=googlier.comU9ibPb Log on to […]
          

Symfony 4.3.5 released

 Cache   

Symfony 4.3.5 has just been released. Here is a list of the most important changes:

  • bug #33742 [Crawler] document $default as string|null (@nicolas-grekas)
  • bug #32308 [Messenger] DoctrineTransport: ensure auto setup is only done once (@bendavies)
  • bug #33871 [HttpClient] bugfix exploding values of headers (@michaljusiega)
  • bug #33834 [Validator] Fix ValidValidator group cascading usage (@fancyweb)
  • bug #33863 [Routing] gracefully handle docre _root ini setting (@nicolas-grekas)
  • bug #33846 [Cache] give 100ms before starting the expiration countdown (@nicolas-grekas)
  • bug #33853 [HttpClient] fix "n _proxy" option ignored in NativeHttpClient (@Harry-Dunne)
  • bug #33841 [VarDumper] fix dumping uninitialized SplFileInfo (@nicolas-grekas)
  • bug #33842 [Cache] fix logger usage in CacheTrait::doGet() (@nicolas-grekas)
  • bug #33835 [Workflow] Fixed BC break on WorkflowInterface (@lyrixx)
  • bug #33799 [Security]: Don't let falsy usernames slip through impersonation (@j4nr6n)
  • bug #33814 [HttpFoundation] Check if data passed to SessionBagProxy::initialize is an array (@mynameisbogdan)
  • bug #33744 [DI] Add CSV env var processor tests / support PHP 7.4 (@ro0NL)
  • bug #33805 [FrameworkBundle] Fix wrong returned status code in ConfigDebugCommand (@jschaedl)
  • bug #33781 [AnnotationCacheWarmer] add RedirectController to annotation cache (@jenschude)
  • bug #33777 Fix the :only-of-type pseudo class selector (@jakzal)
  • bug #32051 [Serializer] Add CsvEncoder tests for PHP 7.4 (@ro0NL)
  • feature #33776 Copy phpunit.xsd#utm_source=googlier.com/page/2019_10_08/56008&utm_campaign=link&utm_term=googlier&utm_content=googlier.com to a predictable path (@julienfalque)
  • bug #33759 [Security/Http] fix parsing X509 emailAddress (@nicolas-grekas)
  • bug #33733 [Serializer] fix denormalization of string-arrays with only one element (@mkrauser)
  • bug #33754 [Cache] fix known tag versions ttl check (@SwenVanZanten)
  • bug #33646 [HttpFoundation] allow additinal characters in not raw cookies (@marie)
  • bug #33748 [Console] Do not include hidden commands in suggested alternatives (@m-vo)
  • bug #33625 [DependencyInjection] Fix wrong exception when service is synthetic (@k0d3r1s)
  • bug #32979 [Messenger] return empty envelopes when RetryableException occurs (@surikman)
  • bug #32522 [Validator] Accept underscores in the URL validator, as the URL will load (@battye)
  • bug #32437 Fix toolbar load when GET params are present in _wdt" route (@Molkobain)
  • bug #32925 [Translation] Collect original locale in case of fallback translation (@digilist)
  • bug #33691 [HttpClient] fix race condition when reading response with informational status (@nicolas-grekas)
  • bug #33727 [HttpClient] workaround bad Content-Length sent by old libcurl (@nicolas-grekas)
  • bug #31198 [FrameworkBundle] Fix framework bundle lock configuration not working as expected (@HypeMC)
  • bug #33719 [Cache] dont override native Memcached options (@nicolas-grekas)
  • bug #33703 [Cache] fail gracefully when locking is not supported (@nicolas-grekas)
  • bug #33713 Fix exceptions (PDOException) error code type (@fruty)
  • bug #32335 [Form] Names for buttons should start with lowercase (@mcfedr)
  • bug #33706 [Mailer][Messenger] ensure legacy event dispatcher compatibility (@xabbuh)
  • bug #33688 Add missing ro _attr option to FormType (@mcsky)
  • bug #33693 [Security] use LegacyEventDispatcherProxy (@dmaicher)
  • bug #33675 [PhpUnit] Fix usleep mock return value (@fabpot)
  • bug #33652 [Cache] skip igbinary on PHP 7.4.0 (@nicolas-grekas)
  • bug #33643 [HttpClient] fix throwing HTTP exceptions when the 1st chunk is emitted (@nicolas-grekas)
  • bug #33618 fix tests depending on other components' tests (@xabbuh)
  • bug #33626 [PropertyInfo] ensure compatibility with type resolver 0.5 (@xabbuh)
  • bug #33620 [Twig] Fix Twig config extra keys (@fabpot)
  • bug #33600 [Messenger] Fix exception message of failed message is dropped on retry (@tienvx)
  • bug #33601 [HttpClient] Add default value for Accept header (@numerogeek)
  • bug #33340 [Finder] Adjust regex to correctly match comments in gitignore contents (@Jeroeny)
  • bug #33588 [PropertyInfo] ensure compatibility with type resolver 0.5 (@xabbuh)
  • bug #33575 [WebProfilerBundle] Fix time panel legend buttons (@fancyweb)
  • bug #33571 [Inflector] add support 'see' to 'ee' for singularize 'fees' to 'fee' (@maxhelias)
  • bug #32763 [Console] Get dimensions from stty on windows if possible (@rtek)
  • bug #33570 Fixed cache pools affecting each other due to an overwritten seed variable (@roed)
  • bug #33517 [Yaml] properly catch legacy tag syntax usages (@xabbuh)
  • bug #33546 [DependencyInjection] Accept existing interfaces as valid named args (@fancyweb)
  • bug #33547 [HttpClient] Re-enable Server Push support (@dunglas)
  • bug #33521 Fixed incompatibility between ServiceSubscriberTrait and classes with protected $container property (@a-menshchikov)
  • bug #33518 [Yaml] don't dump a scalar tag value on its own line (@xabbuh)
  • bug #33505 [HttpClient] fallbackto CURLMOP _MAXCONNECTS when CURLMOP _MA _HOS _CONNECTIONS is not available (@nicolas-grekas)
  • bug #32818 [HttpKernel] Fix getFileLinkFormat() to avoid returning the wrong URL in Profiler (@Arman-Hosseini)
  • bug #33487 [HttpKernel] Fix Apache mo _expires Session Cache-Control issue (@pbowyer)
  • bug #33469 [FrameworkBundle] Fixed suggested package for missing server:dump command (@lyrixx)
  • bug #31964 [Router] routing cache crash when using generato _class (@dFayet)
  • bug #33481 [Messenger] fix empty amqp body returned as false (@Tobion)
  • bug #33387 [Mailer] maintain sender/recipient name in SMTP envelopes (@xabbuh)
  • bug #33449 Fix gmail relay (@Beno!t POLASZEK)
  • bug #33391 [HttpClient] fix support for 103 Early Hints and other informational status codes (@nicolas-grekas)
  • bug #33444 [HttpClient] improve handling of HTTP/2 PUSH, disable it by default (@nicolas-grekas)
  • bug #33435 [Validator] Only handle numeric values in DivisibleBy (@fancyweb)
  • bug #33437 Fix #33427 (@sylfabre)
  • bug #33439 [Validator] Sync string to date behavior and throw a better exception (@fancyweb)
  • bug #33436 [DI] fix support for "!tagge _locator foo" (@nicolas-grekas)
  • bug #32903 [PHPUnit Bridge] Avoid registering listener twice (@alexpott)
  • bug #33432 [Mailer] Fix Mailgun support when a response is not JSON as expected (@fabpot)
  • bug #33402 [Finder] Prevent unintentional file locks in Windows (@jspringe)
  • bug #33376 [Mailer] Remove the default dispatcher in AbstractTransport (@fabpot)
  • bug #33357 [FrameworkBundle] Fix about command not showing .env#utm_source=googlier.com/page/2019_10_08/56008&utm_campaign=link&utm_term=googlier&utm_content=googlier.com vars (@brentybh)
  • bug #33396 Fix #33395 PHP 5.3 compatibility (@kylekatarnls)
  • bug #33363 [Routing] fix static route reordering when a previous dynamic route conflicts (@nicolas-grekas)
  • bug #33385 [Console] allow Command::getName() to return null (@nicolas-grekas)
  • bug #33353 Return null as Expire header if it was set to null (@danrot)
  • bug #33382 [ProxyManager] remove ProxiedMethodReturnExpression polyfill (@nicolas-grekas)
  • bug #33377 [Yaml] fix dumping not inlined scalar tag values (@xabbuh)

Want to upgrade to this new release? Fortunately, because Symfony protects backwards-compatibility very closely, this should be quite easy. Read our upgrade documentation to learn more.

Want to be notified whenever a new Symfony release is published? Or when a version is not maintained anymore? Or only when a security issue is fixed? Consider subscribing to the Symfony Roadmap Notifications.


Be trained by Symfony experts - 2019-10-14 Clichy - 2019-10-21 Lyon - 2019-10-28 Berlin

          

Symfony 3.4.32 released

 Cache   

Symfony 3.4.32 has just been released. Here is a list of the most important changes:

  • bug #33834 [Validator] Fix ValidValidator group cascading usage (@fancyweb)
  • bug #33841 [VarDumper] fix dumping uninitialized SplFileInfo (@nicolas-grekas)
  • bug #33799 [Security]: Don't let falsy usernames slip through impersonation (@j4nr6n)
  • bug #33814 [HttpFoundation] Check if data passed to SessionBagProxy::initialize is an array (@mynameisbogdan)
  • bug #33805 [FrameworkBundle] Fix wrong returned status code in ConfigDebugCommand (@jschaedl)
  • bug #33781 [AnnotationCacheWarmer] add RedirectController to annotation cache (@jenschude)
  • bug #33777 Fix the :only-of-type pseudo class selector (@jakzal)
  • bug #32051 [Serializer] Add CsvEncoder tests for PHP 7.4 (@ro0NL)
  • feature #33776 Copy phpunit.xsd#utm_source=googlier.com/page/2019_10_08/56009&utm_campaign=link&utm_term=googlier&utm_content=googlier.com to a predictable path (@julienfalque)
  • bug #33759 [Security/Http] fix parsing X509 emailAddress (@nicolas-grekas)
  • bug #33733 [Serializer] fix denormalization of string-arrays with only one element (@mkrauser)
  • bug #33754 [Cache] fix known tag versions ttl check (@SwenVanZanten)
  • bug #33646 [HttpFoundation] allow additinal characters in not raw cookies (@marie)
  • bug #33748 [Console] Do not include hidden commands in suggested alternatives (@m-vo)
  • bug #33625 [DependencyInjection] Fix wrong exception when service is synthetic (@k0d3r1s)
  • bug #32522 [Validator] Accept underscores in the URL validator, as the URL will load (@battye)
  • bug #32437 Fix toolbar load when GET params are present in _wdt" route (@Molkobain)
  • bug #32925 [Translation] Collect original locale in case of fallback translation (@digilist)
  • bug #31198 [FrameworkBundle] Fix framework bundle lock configuration not working as expected (@HypeMC)
  • bug #33719 [Cache] dont override native Memcached options (@nicolas-grekas)
  • bug #33675 [PhpUnit] Fix usleep mock return value (@fabpot)
  • bug #33618 fix tests depending on other components' tests (@xabbuh)
  • bug #33626 [PropertyInfo] ensure compatibility with type resolver 0.5 (@xabbuh)
  • bug #33620 [Twig] Fix Twig config extra keys (@fabpot)
  • bug #33571 [Inflector] add support 'see' to 'ee' for singularize 'fees' to 'fee' (@maxhelias)
  • bug #32763 [Console] Get dimensions from stty on windows if possible (@rtek)
  • bug #33518 [Yaml] don't dump a scalar tag value on its own line (@xabbuh)
  • bug #32818 [HttpKernel] Fix getFileLinkFormat() to avoid returning the wrong URL in Profiler (@Arman-Hosseini)
  • bug #33487 [HttpKernel] Fix Apache mo _expires Session Cache-Control issue (@pbowyer)
  • bug #33439 [Validator] Sync string to date behavior and throw a better exception (@fancyweb)
  • bug #32903 [PHPUnit Bridge] Avoid registering listener twice (@alexpott)
  • bug #33402 [Finder] Prevent unintentional file locks in Windows (@jspringe)
  • bug #33396 Fix #33395 PHP 5.3 compatibility (@kylekatarnls)
  • bug #33385 [Console] allow Command::getName() to return null (@nicolas-grekas)
  • bug #33353 Return null as Expire header if it was set to null (@danrot)
  • bug #33382 [ProxyManager] remove ProxiedMethodReturnExpression polyfill (@nicolas-grekas)
  • bug #33377 [Yaml] fix dumping not inlined scalar tag values (@xabbuh)

Want to upgrade to this new release? Fortunately, because Symfony protects backwards-compatibility very closely, this should be quite easy. Read our upgrade documentation to learn more.

Want to be notified whenever a new Symfony release is published? Or when a version is not maintained anymore? Or only when a security issue is fixed? Consider subscribing to the Symfony Roadmap Notifications.


Be trained by Symfony experts - 2019-10-14 Clichy - 2019-10-21 Lyon - 2019-10-28 Berlin

          

TVS Motorcycle Prices in Sri Lanka

 Cache   
TVS announces their updated prices for range of TVS motor cycles as follows TVS Wego SBS Rs. 275,400/- TVS Ntorq Rs. 292,900/- TVS Apache RTR 160 2V Rs. 399,000/- For more details contact to TVS on 0114 600 500 or see below ad image
          

Apache Ant 1.10.6

 Cache   
Apache Ant is a Java library and command-line tool
          

Database Administrator - West Virginia Network for Educational Telecomputing (WVNET) - Morgantown, WV

 Cache   
Knowledge of Oracle database administration, SQL, C, shell scripting, Apache, java concepts, Tomcat, and Unix. 837 Chestnut Ridge Road, Morgantown, WV, 26505.
From Indeed - Wed, 11 Sep 2019 18:29:54 GMT - View all Morgantown, WV jobs
          

Linux Systemadministrator (m/w/d)

 Cache   
Linux Systemadministrator (m/w/d) BRUNO BADER GmbH + Co. KG Pforzheim Sie bilden die Schnittstelle zwischen Entwicklung und Betrieb und vereinen die beiden Welten für einen erfolgreichen Betrieb von Java/JEE-Applikationen; Betrieb von JBoss Wildfly Application Server und Apache http Server als Loadbalancer;... sie sind auf der suche nach einem sicheren arbeitsplatz in einem stabilen
          

Apache Ant 1.10.6

 Cache   
Apache Ant is a Java library and command-line tool
          

Nginx domain resolution 502 gateway (1 reply)

 Cache   
I have developed a website for a customer, it's currently sitting on a sub-domain on our server and is finished but i now need to carry out testing for eCommerce payments and that means the site needs to move from our sub-domain over to their live domain.

For this, i've created a cPanel account with that domain but because it's live elsewhere, the best way for me to complete the migration before any DNS records are changed on the 3rd party hosting is to be able to access the site on my machine, i edited my local host files (windows) for that reason

Before NGINX was installed on the CentOS server, modifying the local host file would work perfectly and i could access the site only on my machine to finish up the migration, then when finished i'll ask the 3rd party host to change NS to our us, meaning no downtime to their site and a nice migration.

At the moment, even though the host file is changed and a local cmd ping brings up our server, i get a 502 gateway error nginx in the browser, checking nginx error logs i believe it's because nginx server is trying to resolve the 3rd party real host IP address but my machine is set to resolve the server ip version.

Does that make sense? All other sites on the server are working fine through Apache + Nginx but i'm stuck with this problem.

I could simply ask the 3rd party hosting company to change the A record to point to our server but it would mean the client would face some downtime while i finished up the migration.

Any help is appreciated.
          

c++ dynamic module fails to load (2 replies)

 Cache   
Hi All,

I have a C++ module developed for apache HTTP which now Im trying to port to Nginx. For this I started reading about creating dynamic modules and specifically c++. I already found ngx_cpp_test_module.cpp#utm_source=googlier.com/page/2019_10_08/95207&utm_campaign=link&utm_term=googlier&utm_content=googlier.com in the source and able to compile it. I extended it a little and wrote a hello world program which compiles fine but when I restart Nginx I get following error:

[build@8e269df38d20 nginx-1.16.1]$ sudo /usr/sbin/nginx -t
nginx: [emerg] dlopen() "/etc/nginx/modules/ngx_http_cpp_hello_module.so#utm_source=googlier.com/page/2019_10_08/95207&utm_campaign=link&utm_term=googlier&utm_content=googlier.com" failed (/etc/nginx/modules/ngx_http_cpp_hello_module.so#utm_source=googlier.com/page/2019_10_08/95207&utm_campaign=link&utm_term=googlier&utm_content=googlier.com: undefined symbol: ngx_http_cpp_hello_module) in /etc/nginx/nginx.conf#utm_source=googlier.com/page/2019_10_08/95207&utm_campaign=link&utm_term=googlier&utm_content=googlier.com:2

I have configured it as follows:

./configure --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-lstdc++ -lrt -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/home/build --add-dynamic-module=/mnt/src/hello-world-cpp --with-threads

The config:

ngx_addon_name=ngx_http_cpp_hello_module

if test -n "$ngx_module_link"; then
ngx_module_type=HTTP
ngx_module_name=$ngx_addon_name
ngx_module_srcs="$ngx_addon_dir/ngx_http_cpp_hello_world_module.cpp#utm_source=googlier.com/page/2019_10_08/95207&utm_campaign=link&utm_term=googlier&utm_content=googlier.com"

. auto/module
else
HTTP_MODULES="$HTTP_MODULES ngx_http_hello_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_cpp_hello_world_module.cpp#utm_source=googlier.com/page/2019_10_08/95207&utm_campaign=link&utm_term=googlier&utm_content=googlier.com"
fi

As per the error "undefined symbol: ngx_http_cpp_hello_module" Im trying to understand why it is trying to find that function in the code.
Is there something that I'm missing during configuring or compilation process?
          

DBeaver 6.2.2

 Cache   
Versie 6.2.2 van DBeaver is uitgekomen. Met dit programma kunnen databases worden beheerd. Het kan onder andere queries uitvoeren, en data tonen, filteren en bewerken. Ondersteuning voor de bekende databases, zoals MySQL, Oracle, DB2, SQL Server, PostgreSQL, Firebird en SQLite, is aanwezig. Het is verkrijgbaar in een CE- en EE-smaak, waarbij de eerste zonder kosten als open source te gebruiken is. De enterprisesmaak voegt ondersteuning van verschillende nosql-databases toe, zoals MongoDB, Apache Cassandra en Apache Hive, en bevat verder extra plug-ins en jdbc-drivers. In deze uitgave zijn de volgende veranderingen en verbeteringen doorgevoerd:
          

November 5th, 2002

 Cache   

Over the last few months, I noticed a few requests for an XSLT processor that would run in Frontier and Radio. After experimenting with both the Apache XML project’s Xerces / Xalan and the Gnome project’s libxml / libxslt libraries, I finally managed to produce a working extension for Frontier and Radio based on the Ginger Alliance’s Sablotron:

To install, unpack the archive and open the resulting file with Frontier or Radio.

Please note: This release is for thrill seekers only. It is neither feature-complete nor fully debugged. I have done some light testing on Mac OS X and Windows 2000, but the Mac OS Classic version has not been tested at all. If this release blows up your machine, I will not accept any responsibility.

The DLLs shipping with this release log a lot of internal information to a text file named “sablotron_dbg_log.txt#utm_source=googlier.com/page/2019_10_08/101245&utm_campaign=link&utm_term=googlier&utm_content=googlier.com” that might end up in your Frontier or Radio folder or whatever happens to be the current working directory.

The processor currently ignores any encoding specified in the stylesheet for the output document as Sablotron only supports UTF-8 natively for output. Support for other common encodings will of course be added later.

There is only minimal documentation in the form of a sample script at sablot.examples.tran#utm_source=googlier.com/page/2019_10_08/101245&utm_campaign=link&utm_term=googlier&utm_content=googlier.comsformTest.

Finally, it is entirely possible that there will be some fundamental changes to the API over the next few releases that will break all scripts written to the current API. You have been warned.

That said, I am very interested in any kind of feedback from anyone who dares to experiment with this release.


          

Apache Ant 1.10.6

 Cache   
Apache Ant is a Java library and command-line tool
          

Développeur Java/JEE - Voonyx - Lac-beauport, QC

 Cache   
Java Enterprise Edition (JEE), Eclipse/IntelliJ/Netbeans, Spring, Apache Tomcat, JBoss, WebSphere, Camel, SOAP, REST, JMS, JPA, Hibernate, JDBC, OSGI, Servlet,…
From Voonyx - Sat, 24 Nov 2018 11:13:32 GMT - View all Lac-beauport, QC jobs
          

Java/JEE Developer - Voonyx - Lac-beauport, QC

 Cache   
Java Enterprise Edition (JEE), Eclipse/IntelliJ/Netbeans, Spring, Apache Tomcat, JBoss, WebSphere, Camel, SOAP, REST, JMS, JPA, Hibernate, JDBC, OSGI, Servlet,…
From Voonyx - Sat, 24 Nov 2018 11:13:28 GMT - View all Lac-beauport, QC jobs
          

Apache Ant 1.10.6

 Cache   
Apache Ant is a Java library and command-line tool
          

A performance comparison of Dask and Apache Spark for data-intensive neuroimaging pipelines. (arXiv:1907.13030v3 [cs.DC] UPDATED)

 Cache   

Authors: Mathieu Dugré, Valérie Hayot-Sasson, Tristan Glatard

In the past few years, neuroimaging has entered the Big Data era due to the joint increase in image resolution, data sharing, and study sizes. However, no particular Big Data engines have emerged in this field, and several alternatives remain available. We compare two popular Big Data engines with Python APIs, Apache Spark and Dask, for their runtime performance in processing neuroimaging pipelines. Our evaluation uses two synthetic pipelines processing the 81GB BigBrain image, and a real pipeline processing anatomical data from more than 1,000 subjects. We benchmark these pipelines using various combinations of task durations, data sizes, and numbers of workers, deployed on an 8-node (8 cores ea.) compute cluster in Compute Canada's Arbutus cloud. We evaluate PySpark's RDD API against Dask's Bag, Delayed and Futures. Results show that despite slight differences between Spark and Dask, both engines perform comparably. However, Dask pipelines risk being limited by Python's GIL depending on task type and cluster configuration. In all cases, the major limiting factor was data transfer. While either engine is suitable for neuroimaging pipelines, more effort needs to be placed in reducing data transfer time.


          

Apache downgraded to Neutral from Overweight at MUFG

 Cache   
Apache downgraded to Neutral from Overweight at MUFG
More
          

Apache call volume above normal and directionally bullish

 Cache   
Apache call volume above normal and directionally bullish
More
          

LoadModule ディレクティブのコンテキスト…

 Cache   

LoadModule ディレクティブのコンテキストは「サーバー設定ファイル」なので .htac#utm_source=googlier.com/page/2019_10_08/124279&utm_campaign=link&utm_term=googlier&utm_content=googlier.comcess には書けません。

LoadModule

コンテキスト


          

Shark-like “Invictus” is Bell’s bid for Army’s future attack-recon aircraft

 Cache   
Single-rotor light helicopter design aims to take on scout role now held by Apaches.
          

Why Apache Corp., Vermilion Energy, and Valero Energy All Rose Double Digits in September

 Cache   
Some shocking oil news led to dramatic price moves in the energy space up and down the value chain.
          

Webmaster - Impostare .htaccess per manutenzione sito in PHP / Apache (sayhem)

 Cache   
Dal sito https:/ trovalost.it#utm_source=googlier.com/page/2019_10_08/135442&utm_campaign=link&utm_term=googlier&utm_content=googlier.com, sayhem scrive nella categoria Webmaster che: Per agire in questa direzione, è semplice: andiamo nella root del sito, ed editiamo il file .htac#utm_source=googlier.com/page/2019_10_08/135442&utm_campaign=link&utm_term=googlier&utm_content=googlier.comcess via FTP; prima di modificarlo, meglio scaricarsi una copia di backup in modo da poter rimettere rapidamente a posto le cose dopo aver finito la manutenzione. Per sapere come effettuare le op
SI parla anche di Webmaster
1 Voti Impostare .htac#utm_source=googlier.com/page/2019_10_08/135442&utm_campaign=link&utm_term=googlier&utm_content=googlier.comcess per manutenzione sito in PHP / Apache

Vai all'articolo completo » .Impostare .htac#utm_source=googlier.com/page/2019_10_08/135442&utm_campaign=link&utm_term=googlier&utm_content=googlier.comcess per manutenzione sito in PHP / Apache.
Impostare .htac#utm_source=googlier.com/page/2019_10_08/135442&utm_campaign=link&utm_term=googlier&utm_content=googlier.comcess per manutenzione sito in PHP / Apache
          

September 2019 Web Server Survey

 Cache   

In the September 2019 survey we received responses from 1,291,178,101 sites across 241,131,705 unique domain names and 9,068,313 web-facing computers. This reflects a gain of 19 million sites, 1.69 million domains and 119,000 computers.

All major vendors gained sites this month. The largest gain was for nginx with an increase of 20.6 million sites, followed by Microsoft (+2.9 million), Google (+2.1 million) and Apache (+462,000). This extends nginx's lead as the largest web server vendor by number of sites; it gained 1.12 percentage points taking it to a 32.7% market share. nginx also showed the largest gains in number of unique domains and web-facing computers.

The largest gain within the top million sites this month was by LiteSpeed, which also saw gains in hostnames, domains, and web-facing computers. The September survey saw 1,422 more sites within the top million using this light-weight Apache alternative, an 8.0% increase. This was accompanied by increases of 480,000 sites (+2.6%), 326,000 domains (+9.4%) and 1,665 web-facing computers (+8.1%).

There are losses in market share for both Apache and nginx as the largest server vendors by number of active sites. Apache lost 22,000 active sites while nginx gained 915,000; due to large gains elsewhere this amounted to Apache losing 0.94pp and nginx losing 0.11pp. Google gained 800,000 active sites and 0.16pp of market share to retake third place from Cloudflare; Cloudflare gained 591,000 sites. The largest increase of active sites was in sites running openresty with an increase of 1.04 million.

Web Server Releases

Apache 2.4.41 was released on August 14th bringing several security fixes. This is the first release of Apache 2.4 since 2.4.39 was released on April 1st.

OpenLiteSpeed released a major new feature in version 1.6.0 on September 10th adding support for QUIC and HTTP/3 as well as a new one-click build tool and support for more platforms.

Both OpenResty and Tengine released versions incorporating the nginx patches that fix the HTTP/2 related security issues discussed in last month's blog. OpenResty version 1.15.8.2 was released on September 8th and Tengine 2.3.2 released on August 20th.

Total number of websites

Web server market share

DeveloperAugust 2019PercentSeptember 2019PercentChange
nginx401,454,02931.56%422,048,24332.69%1.12
Apache374,277,24329.43%374,739,32129.02%-0.40
Microsoft187,109,42314.71%189,991,31214.71%0.00
Google30,969,2592.43%33,058,9302.56%0.13

          

Another Hadoop-backended Database: CloudBase

 Cache   

This post to one of the Hadoop mailing lists caught my eye, Announcing CloudBase-1.1 release. Wait, wasn't Cloudbase the embedded database company that IBM acquired several years back but ended up donating the product to the Apache Software Foundation as Derby? No, not that Cloudbase. This is apparently another project that aims to provide data warehousing on top of Hadoop.

I've been watching the emergence of HBase, Hypertable and most recently the proposed incubation of Facebook's Cassandra with great interest. The first two are modeled from Google's BigTable but all are essentially horizontally scalable column oriented databases. The developers of these systems explicitly steer away having their technologies pegged as relational databases, with the refrain: "We don't do joins." What the CloudBase project aims to do is not model themselves on BigTable but to explicitly support joins between tables built on top of an HDFS cluster. It looks like they've posted extensive documentation and have released a JDBC driver, pretty cool! This is the most interesting database initiative I've seen since GreenPlum announced their support for mapreduce.

Yes, as far as scale-out data analytics, we live in interesting times.

                 


          

GData and Goofles

 Cache   

Since Niall mentioned GData, I've been meaning to look into it further. Today Otis mentioned that one of the Apache/Summer of Code projects proposed is a lucene-based GData server implementation.

I took a look at the docs and realized that this is actually a really old spec, as old as the epoch as a matter of fact. Check it out:

But seriously folks, the G-man and his crue have done a fine job providing client implementations (as long as your not waiting on Ruby or one of the P-languages, no perl, python or php yet). Even a nice set of examples for the Java implementation. Thanks, G!

               


          

AJP13 for Ruby on Rails!

 Cache   

A few months ago, I mused that we should be able to abandon FastCGI (with extreme prejudice) and use AJP13 with Ruby on Rails instead. Well, unbeknownst to me at the time, someone was hatching just such a plot, the Ruby/AJP Project! I'd heard last month that David Andersen was tinkering on installing it... well, he not only got it online but he blogged how he did it. Take a look at his compile time and run time configuration details using Apache 2.2's native AJP13 protocol plugin for mod_proxy (i.e. no mod_jk, good riddance), it's really cool! Way to go, David!

           


          

The Hard Work of Making Java Easy

 Cache   

The Java backlash that began a few years ago was mostly a J2EE backlash, not against the Java language per se. Too many people took the blueprints too seriously, too literally or just too damned religiously. Too many applications that didn't need EJBs were using them, letting the container manage low level application plumbing invited slow and buggy behaviors that were painful to debug. The backlash has made a lot Perl/Python/PHP enthusiasts express self-righteous vindication and have helped morph the J2EE backlash into a broader Java backlash. Geez, even IBM is getting all spun up on PHP, whodathunk? But I think the dismissal of Java is premature. None of the P languages or Java are without hazards. These days a lot of developers are over the blueprint kool-aid and are standardizing on a simplified and productive stack:

  • Spring Framework
  • Apache (httpd and Tomcat)
  • SQL (MySQL or PostgreSQL)
  • Hibernate (optionally)
However, there is still a rapid development gap. I've heard Java called a "high ceremony" language. Where you can often prototype a lot of functionality in a modest amount of code with the P languages, you end up writing a lot more code to do the same things in Java. On the other hand, the run time errors, sorcerers and hackers adherent to the P languages are at least as guilty of the same brand of excessive zealotry as the blueprint adherents. The practical heresy demands recognizing that you can get it really wrong in just about any programming language. As far as the high ceremony, Java and J2EE are guilty as charged. As if to punish Sun, the developer community has innovated just fine without advance posturing within Sun's prescribed processes (the good news there: many within Sun seem to realize that they can't carry on as a cathedral and, in fact, are embracing the bazaar, bravo!). Spring and Hibernate each offer a degree of code simplification but require a bit of XML-hell. Even though the XML is way simpler to maintain than say, struts-config.xml#utm_source=googlier.com/page/2019_10_08/138846&utm_campaign=link&utm_term=googlier&utm_content=googlier.com and EJB deployment descriptors, you've reduced your compile-time safety code maintenance but increased your runtime hazards with more XML. Xdoclet or JSR-175 annotations can simplify a lot of the XML configulation required for Struts and Hibernate but then you might end up in another kind of hell: annotation hell. Choose your hell well!

To really bring rapid development and prototyping to a Java environment, there a lot options to look at such as dynamic JVM languages:

Jython
By most accounts, a mature but quirky Python for the JVM
JRuby
An immature but progressing Ruby for the JVM
Groovy
A failed experiment or work in progress, depending on who you talk to
Ruby on Rails doesn't run on JRuby (supposedly, it's coming). Grails (the artist formerly known as Groovy on Rails) is on v0.1, I'm not holding my breath. What about getting the simple life "convention-over-configuration" in Java? You get some of it simply by using Maven; organize your code to the Maven convention and compiling, testing and packaging your application just works. Eclipse provides so much developer support for Java already, using Maven and Eclipse together is great way to keep a lot of the high ceremony out of your way. But for application development, there are a few rails-alike frameworks for Java that I'm still interested in trying: rife and trails.

I expect in the months ahead to be writing applications with plugin support and that the big win for the dynamic JVM languages for me will be in easing the rapid development of plugins. In other words, I probably wouldn't write an end to end application with them but given a set of interfaces for extension points that can be automatically tested, writing the extensions in JRuby or Groovy sounds compelling.

I actually haven't had time and opportunity to substantially try half the things I've mentioned thus far. Surveying the number of tools, languages and frameworks it's clear that there are a lot of things to consider and that a lot people are concerned with (and working hard on) bringing the down the high ceremony of Java. I'll still be using P languages in the future, too. Down the road, I suspect virtual machines (JVM? parrot? mono/CLR?) will make a lot of these issues fade away and the questions at hand will be around when to use closures and when to use objects, when to annotate and when to externally declare, when to explicitly type or auto-type and so forth. The languages will be incidental as they support shared constructs and virtual machines.

                   


          

Making Velocity Be Quiet About Resource Loading

 Cache   

I'd never dug into where velocity's annoying messages were coming from but I decided enough is enough already. These tiresome messages from velocity were showing up on every page load:

2006-02-22 12:08:02 StandardContext[/webapp] Velocity   [info] ResourceManager : found /path/to/resource.vm#utm_source=googlier.com/page/2019_10_08/138847&utm_campaign=link&utm_term=googlier&utm_content=googlier.com with loader org.apache.velocity.tools.view.serv#utm_source=googlier.com/page/2019_10_08/138847&utm_campaign=link&utm_term=googlier&utm_content=googlier.comlet.WebappLoader
Such messages might be good for debugging your setup but once you're up and running, they're just obnoxious. They definitely weren't coming from the log4j.prop#utm_source=googlier.com/page/2019_10_08/138847&utm_campaign=link&utm_term=googlier&utm_content=googlier.comerties in the webapp. So I took a look at velocity's defaults. The logging properties that velocity ships with in velocity.prop#utm_source=googlier.com/page/2019_10_08/138847&utm_campaign=link&utm_term=googlier&utm_content=googlier.comerties concern display of stacktraces but the constant chatter in Tomcat's logs weren't in there either. So I unwrapped the velocity source and found it in org.apache.velocity.runt#utm_source=googlier.com/page/2019_10_08/138847&utm_campaign=link&utm_term=googlier&utm_content=googlier.comime.RuntimeConstants -- all I had to do is add this to velocity.prop#utm_source=googlier.com/page/2019_10_08/138847&utm_campaign=link&utm_term=googlier&utm_content=googlier.comerties and there was peace:
resource.manager.logw#utm_source=googlier.com/page/2019_10_08/138847&utm_campaign=link&utm_term=googlier&utm_content=googlier.comhenfound = false
Ah, much better!

They shoulda named that property resource.manager.cmon.feel.the.nois#utm_source=googlier.com/page/2019_10_08/138847&utm_campaign=link&utm_term=googlier&utm_content=googlier.come, seriously.


          

Beware the Tiger 10.4.4 Update

 Cache   

I finally succumbed to Apple's pleas to update Tiger on my powerbook to 10.4.4. Maven was dumping hotspot errors and Eclipse was misbehaving, so an update seemed in order. Well, when the system came up, my menu bar items (clock, battery status, wifi status, speaker volume, etc) were gone! The network settings were goofed up and I had this profound flash of regret that I hadn't done a backup before doing the update.

Thankfully, Mike Hoover and davidx (co-horts at Technorati) were on hand to assist and dig up the following factoid:

  • if you've disabled spotlight (yes I had, spotlight don't do nuffin' for me 'cept chew up resources), then the Tiger update may hose things
  • The fix was to ditch /System/Library/CoreServices/Search.bund#utm_source=googlier.com/page/2019_10_08/138851&utm_campaign=link&utm_term=googlier&utm_content=googlier.comle
  • What I did was open a shell and sudo mv /System/Library/CoreServices/Search.bund#utm_source=googlier.com/page/2019_10_08/138851&utm_campaign=link&utm_term=googlier&utm_content=googlier.comle /var/tmp/, then rebooted
  • Menu bar came back and from the wifi pulldown, I was able to recreate my network settings
Apparently, this doesn't work for everybody though -- so beware!


          

Test Dependencies versus Short Test Cycles

 Cache   

A lightweight build system should be able to run a project's test harness quickly so that developers can validate their work and promptly move on to the next thing. Each test should, in theory, stand alone and not require the outcome of prior tests. But if testing the application requires setting up a lot of data to run against, the can run into a fundamental conflict with the practical. How does it go? "The difference between theory and practice is different in theory and in practice."

Recently I've been developing a caching subsystem that should support fixed size LRU's, expiration and so forth. I'd rather re-use the data that I already have in the other test's data set -- there are existing tests that exercise the data writer and reader classes. For my cache manager class, I started off the testing with a simple test case that creates a synthetic entity, a mock object, and validates that it can store and fetch as well as store and lazily expire the object. Great, that was easy!

What about the case of putting a lot of objects in the cache and expiring the oldest entries? What about putting a lot of objects in the cache and test fetching them while the expiration thread is concurrently removing expired entries? Testing the multi-threaded behavior is already a sufficient PITA, having to synthesize a legion of mock objects means more code to maintain -- elsewhere in the build system I have classes that the tests verify can access legions of objects, why not use that? The best code is the code that you don't have to maintain.

<sigh />
I want to be agile, I want to reuse and maintain less code and I want the test harness to run quickly. Is that too much to ask?

My take on this is that agile methodologies are composed of a set practices and principles that promote (among other things) flexible, confident and collaborative development. Working in a small startup, as I do at Technorati, all three are vital to our technical execution. I have a dogma about confidence:

confidence
Testing is where the rubber meets the road. Making a change and then putting your finger to the wind will not suffice. Internal improvement of the implementations, refactoring, are a thrice-hourly activity. Test driven development (TDD) is essential to confidently refactoring (internal implementations) and making alterations to the external interface. Serving this principle is a vital practice: automation. If testing consists of a finger to the wind, a manual process of walking through different client scenarios, it won't get done or it won't get done with sufficient thoroughness and the quality is guaranteed to lapse. Testing should come first (or, failing that, as early as possible), be automated and performed often, continuously. If tests are laborious and time consuming, guess what? People won't run them. And then you're back in wing-and-a-prayers-ville.

Lately I've been favoring maven for build management (complete with all of it's project lifecycle goodies). Maven gives me less build code to maintain (less build.xml#utm_source=googlier.com/page/2019_10_08/138852&utm_campaign=link&utm_term=googlier&utm_content=googlier.com stuff). However, one thing that's really jumped in my way is that in the project.xml#utm_source=googlier.com/page/2019_10_08/138852&utm_campaign=link&utm_term=googlier&utm_content=googlier.com file, there's only one way and one place to define how to run the tests. This is a problem that highlights one of the key tensions with TDD: from a purist standpoint, that's correct; there should be one test harness that runs each test case in isolation of the rest. But in my experience, projects usually have different levels of capability and integration that require a choice, either:

  1. the tests require their own data setup and teardown cycles, which my require a lot of time consuming data re-initialization ("drop the database tables if they exist", "create the database tables", "populate the database tables", "do stuff with the data")

  2. OR
  3. tests can be run in a predictable order with different known data states along the way
The latter is widely frowned upon by the TDD purists. But purity ain't gonna pay the bills. I reached a point where I had to kick the proverbial dogma under the proverbial karma.

I ended up writing an ant test runner that maven invokes after the database is setup. Each set of tests that transitions the data to a known state lays the ground work for the next set of tests. Perhaps I'd feel differently about it if I had more success with DBUnit or had a mock-object generator that could materialize classes pre-populated with desired data states. In the meantime, my test harness runs three times faster and there's less build plumbing (which is code) to maintain had I adhered to the TDD dogma.


          

Ramblings on the Tension between Simplicity and Extensibility

 Cache   

There is widespread frustration with standards that try to boil the ocean of software problems that are out there to solve. Tim Bray has a sound advice:

If you're going to be designing a new XML language, first of all, consider not doing it.
In his discussion of Minimalism vs. Completeness he quotes Gall's Law:
A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.
The tendency to inflate standards is similar to software development featuritus. I'm oft heard to utter the refrain, "Let's practice getting above the atmosphere before shooting for the moon." The scope of what is "complete" is likely to change 20% along the way towards getting there. The basic idea is to aim for sufficiency, not completeness; simplicity and extensibility are usually divergent. Part of the engineering art is to find as much of both as possible.

On the flip side, where completeness is an explicit upfront goal, there are internal tensions there as well. Either building for as many of the anticipated needs as possible or a profound commitment to refactoring has to be reckoned with. The danger of only implementing the simplist thing without a commitment to refactoring is that expediency tends to lead people, particularly if they haven't solved that type of problem before, to do the easy but counter-productive thing: taking short cuts, cutting and pasting and hard coding random magic doodads. As long as there is a commitment to refactoring, software atrophy can be combatted. Reducing duplication, separating concerns and coding to interfaces enables software to grow without declining in comprehensibility. Throw in a little test-driven development and you've got a lot of the standard shtick for agility.

Even though there's a project at work that I've been working on mostly solo, it's built for agility. The build system is relatively minimal thanks to maven. The core APIs and service interfaces (which favors simplicity: REST) are unit tested and the whole thing is monitored under CruiseControl to keep it all honest. This actually saved us the other day when a collaborator needed additional data included in the API's return values. He did the simplest thing (good) but I promptly got an email from CruiseControl that the build was broken. I reviewed his check-in and refactored it by moving the code that was put in-line in the method and moving it do it's own. I wrote a test for the method that fetches the additional data. And then wrote one for the original method's responses to include the additional data. The original method then acquired a flag to indicate whether the responses should be dressed up with this additional data; not all clients need it and it requires a round-trip to another data repository, making it a parameter makes sense since the applications that don't need it are performance sensitive. Afterwards, the code enjoyed additional benefits in that the caching had granularity that matched the distibution of the data sources. Getting the next mail from CruiseControl that it was happy with the build was very gratifying. I need to test-infect my colleagues so they learn to enjoy the same pavlovian response.

Anyway. I'm short on sleep and long on rambles this morning.

There are times when simple problems are mired in seemingly endless hand wringing and you have to stand up to shout JFDI. The Java software world, like RDF theorists and other parochial ivory tower clubs, seems to have a bad case of specificationitus. There are over 300 JSR's. Do we need all of those? On the other hand, great software is generally not created in a burst of a hackathon. There's no doubt that when a project has fallen into quicksand, getting all parties around a table and getting it out is an important way to clear the path. Rapid prototyping is often best accomplished in a focused push. I like prototyping to be used as a warm up exercise. If you can practice getting lift-off on a problem and you can attain high altitudes with some simple efforts, you're likelihood of making it to the moon increases.


          

AJP13 for Ruby on Rails?

 Cache   

Let's call the CGI specification what it is: a burned out and anemic teenager. While it seems kinda cool that Apache 2.2's is going to get mod_proxy_fcgi, I've long wondered about using AJP13 to interface with web application runtimes other than servlet containers.

Brian McCallister did a kick butt cut-to-the-chase preso on Ruby on Rails at ApacheCon in San Diego. I can imagine why he's gung-ho to get a FastCGI support upto date, it seems to be the the way to run RoR. But since learning that AJP13 was going to be (and now is) built in to Apache 2.2's mod_proxy framework, I've been thinking how much nicer it'd be for other application frameworks to also be able to run outside the HTTP request handling process/thread.

We have some services that run under mod_perl that I've been taking second (and third) looks at. Wouldn't it be nice to deploy that application independent of the HTTP server runtime as one can with a Java webapp? Essentially, when it's boiled down to bare metal, perhaps that's all FastCGI is but it, it... it's CGI! Isn't it just setting/getting global environment variables? STDIN/STDOUT/STDERR? Isn't that so, well, 1994? Maybe I need to think about it some more but that was my take away last time I built anything with FastCGI (admittedly, in the 1990's).

I found what looks like AJP13 protocol support for Perl. Even though I don't read Japanese I'll infer from the context that he was/is interested in the same thing. Though whenever I see "use threads" in Perl, I fear the worst. Anyway, the likelihood of me finding myself with the time on my hands to implement AJP13 in Ruby is low; first, I still need to learn Ruby enough to get crafty.


          

Open Source Language Detection

 Cache   

No, not a typo. OSDL is something else. I'm interested in OSLD. I've used Language::Guess to detect languages in arbitrary text with Perl, it works pretty well. But how are folks solving the problem in Java?

It looks like Oracle has language detection as part of their "Globalization Development Kit" ... but what about open source? Sadly, the Nutch Language Identifier Plugin only supports European languages, no CJK. What are the other options?


          

Baking Components With Velocity

 Cache   
For years I've advocated that heavyweight content generation should be moved out of the CMS and that publishing systems should do most their work asynchronously.

Recently, I've been generating Velocity components that should be evaluated at request-time but have at least some of the values they must work with calculated asynchronously when the component is generated. Here's an example that involves localizable content:

<div  class="fubars">
$text.get#utm_source=googlier.com/page/2019_10_08/138861&utm_campaign=link&utm_term=googlier&utm_content=googlier.com("fubars.per.seco#utm_source=googlier.com/page/2019_10_08/138861&utm_campaign=link&utm_term=googlier&utm_content=googlier.comnd", [ $fubarRate ])
</div>
So let's say the ResourceBundle has a key in it for fubars.per.seco#utm_source=googlier.com/page/2019_10_08/138861&utm_campaign=link&utm_term=googlier&utm_content=googlier.comnd like so
fubars.per.seco#utm_source=googlier.com/page/2019_10_08/138861&utm_campaign=link&utm_term=googlier&utm_content=googlier.comnd=Number of Fubars Per Second: {0}
If all of the calculation is done at request time, MessageTool would do its thing and this would Just Work. However, if $fubarRate is part of a heavier weight calculation that is done offline, we have to set it. So this is where I use Velocity to generate Velocity code:
  #set($fr = '#set($fubarRate = ')
  #set($fr = "${fr} $measurement.fuba#utm_source=googlier.com/page/2019_10_08/138861&utm_campaign=link&utm_term=googlier&utm_content=googlier.comrRate)")
  $fr
Notice the use of single quotes and double quotes to get the right combination of literal and interpolated evaluation. If my measurement object has a fubarRate property set to 42 then the last line simply outputs
 #set($fubarRate = 42)
and later, after the generated component gets its request time evaluation, the display is rendered as
<div class="fubars">
Number of Fubars Per Second: 42
</div>

Sure, I could generate my components with the web tier's ResourceBundle to get messages evaluated async as well. This would be 100% baking instead of 90% but it would be bad in other ways:

  • It would create a cross dependency between the offline content generation framework and the web code. The ResourceBundle works fine on the web tier, I say leave it there.
  • I would have to create another ResourceBundle evaluator for Velocity; MessageTool hooks into struts' plumbing for handling different Locale's, HttpServletRequest's and other container dependencies. Porting it to work outside of the web context seems like a waste of time; let the web tier be the web tier

This separation of baking versus frying ain't new. I advocated it a long time ago in a talk at the O'Reilly Open Source Conference. I was hot on mod_perl and HTML::Mason back then (and, given a Perl environment, I still like them ...but#utm_source=googlier.com/page/2019_10_08/138861&utm_campaign=link&utm_term=googlier&utm_content=googlier.com I'd prefer a Java web application environment for i18n hands down), however the same basic ideas hold water using Velocity. At the time, application server misuse was in vogue and hundreds of thousands or even millions of dollars were being poured into "Enterprise Content Management" systems that coupled the CMS functions with those of publishing and request handling. Count that as millions of dollars squandered. There are still people struggling with the legacy of slow and stupid systems that can't be replaced because they spent too much money on it already (yea, what'd Forrest Gump say about stupid?). A few years later, when Aaron Swartz wrote about baking content he was insistent that he didn't care about performance, which is cool. The other benefits of baking that he mentions are perfectly valid. In fact, the publishing system at Salon.com#utm_source=googlier.com/page/2019_10_08/138861&utm_campaign=link&utm_term=googlier&utm_content=googlier.com distributes baked goods (HTML::Mason components generated with HTML::Mason components) to the web servers akin to Aaron's call to have something you can just do filesystem operations on. However, that's just the beginning. My maxim is that things that can scale independently should. The users of Bricolage, MovableType and other CMS and blog platforms that separate the management of editorial data, the publish cycle and content serving are enjoying that benefit right now.


          

l10n development practices

 Cache   
I've used Java's handy-dandy ResourceBundles to do some proof-of-concept localizations. But my past proofs were limited; they only used other European languages that utilized ISO-8859-1 characters. I don't recall having to do anything special with the property files in those cases.

Working on a recent Japanese localization project was an eye opening experience. It turns out the java.util#utm_source=googlier.com/page/2019_10_08/138867&utm_campaign=link&utm_term=googlier&utm_content=googlier.com.Properties expects ISO-8859-1 characters. I guess that's the downside of having a super-simple file format. I got the localized display boostrapped by using native2ascii to get the UTF-8 localization text rendered as escaped unicode. On a one-off basis, that's easy enough. But collaborative development always begs the tools question, how do folks typically manage this?

  • Give the localization team instructions on how to use native2ascii on a command line basis?
  • Put it in the build system with the native2ascii ant task?
  • Use a light weight GUI tool like resourcebundleeditor (or a heavy weight GUI tool ...)?

What about input encoding? If there's an HTML form on a page and the input has multibyte characters in the query string (or POST data), are characters escaped to ISO-8859-1? My recollection was that HTTP headers must be ISO-8859-1.... but looking at the docs for PHP's mbstring and the encoding_translation parameter, it looks like server-side handling of the request needs to account for other character set encodings. Do browsers honor charset specification as a form attribute, like

<form action=... method=... accept-charset="UTF-8">
(looks like Struts supports this) or is it presumed that the browser always escapes unicode? Or perhaps they simply URL encode the characters so it's a non-issue? On the server side the must the request handling do this
request.set#utm_source=googlier.com/page/2019_10_08/138867&utm_campaign=link&utm_term=googlier&utm_content=googlier.comCharacterEncoding("UTF-8");
String raw = request.get#utm_source=googlier.com/page/2019_10_08/138867&utm_campaign=link&utm_term=googlier&utm_content=googlier.comParameter("foo");
String clean = new String(raw.get#utm_source=googlier.com/page/2019_10_08/138867&utm_campaign=link&utm_term=googlier&utm_content=googlier.comBytes("ISO-8859-1"), "UTF-8");
or is it all supposed to transparently just work (obviating String cleansing) if request.set#utm_source=googlier.com/page/2019_10_08/138867&utm_campaign=link&utm_term=googlier&utm_content=googlier.comCharacterEncoding("UTF-8") is used? ...for#utm_source=googlier.com/page/2019_10_08/138867&utm_campaign=link&utm_term=googlier&utm_content=googlier.com all of the hand-waving in the docs for ResourceBundle, etc establishing a clear practice for input String handling in a webapp remains murky.

As far as sending responses, is it safe to always just send UTF-8 and include "charset=UTF-8" in the Content-type header? Is it standard practice to presume that the client will send a request header Accept-Charset (which indicates what an acceptable response is)? If they send it and UTF-8 isn't on the list, must the server go through a big String re-writing exercise to encode response to the browser's preference or is UTF-8 presumed to be implicitly acceptable at all times?

So many questions... I'm still digging for anwers.


          

Runtime inseration of struts tiles in Velocity

 Cache   
I've been impressed with TilesTool, it comes in the Velocity Tools package. It runs Velocity views through the struts MVC machine for processing reusable "subviews". However, there's no support for runtime insertion of components!

You can do this in tiles-defs.xml#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.com

   <definition name=".dog#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.com" extends=".animal.layo#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.comut">
     <put name="body"    value=".dog.disp#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.comlay" /> 
     <put name="head"    value=".dog.head#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.com" /> 
   </definition>
   <definition name=".cosmos.head#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.com" extends=".head#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.com">
     <put name="titleKey" value="dog.titl#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.come" />
   </definition>
   <definition name=".dog.disp#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.comlay" 
     controllerUrl="/dog.do#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.com"
     path="/tile/dog.vm#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.com"
     />
and so forth. Declaritive tile composition works just fine. But what about programmatic composition at runtime?

With JSTL and struts, I can do this:

<c:forEach var="bit" items="${kibble}">
  <tiles:insert page="/tile/bark.jsp#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.com">
    <tiles:put name="bit" beanName="bit" />
  </tiles:insert>
</c:forEach>
I would imagine that the Velocity equivalent would look like this:
<ol>
#foreach ($bit in $kibble)
 $tiles.put#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.com("/tile/bark.vm#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.com", { "bit" : $bit })
#end
</ol>
but alas, it's not implemented by TilesTool. I can work around this by moving "bark.vm#utm_source=googlier.com/page/2019_10_08/138869&utm_campaign=link&utm_term=googlier&utm_content=googlier.com" to its own velocimacro but that it fugly as hell. I would prefer parameterized components.


          

Tomcat's "Content-type" header parsing busted?

 Cache   
One bit fun this week was trying to figure out why some XML output I was working was mangling characters. I thought I was doing all of the right things as far as handling the data goes. Well, I think I was but Tomcat 5.0.28 wasn't.

I poked around the Jakarta bug database and the only mention I could find that close was PR 31442, which described having this

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@page pageEncoding="UTF-8"%>
and saying that the text was coming back ISO8859-1 when the page is requested as a GET but not as a POST. Well, someone from the Jakarta project marked the bug INVALID glibly saying to ask on the user's mailing list and look at the Connector configuration because it's not a bug. WTF? Are you kidding?

Now I looked around in the Connector stanza's that come in the server.xml#utm_source=googlier.com/page/2019_10_08/138873&utm_campaign=link&utm_term=googlier&utm_content=googlier.com and see no mention of encoding configuration attributes. I've got a real simple test case.

<% response.set#utm_source=googlier.com/page/2019_10_08/138873&utm_campaign=link&utm_term=googlier&utm_content=googlier.comContentType("text/xml"); %>
triggers no funny encoding behavior, I get the data out as good old utf8 just as I wanted but if I did this
<% response.set#utm_source=googlier.com/page/2019_10_08/138873&utm_campaign=link&utm_term=googlier&utm_content=googlier.comContentType("text/xml; charset=UTF-8"); %>
....kabl#utm_source=googlier.com/page/2019_10_08/138873&utm_campaign=link&utm_term=googlier&utm_content=googlier.comooey! Mangled encoding! That's just wrong. And if it's not wrong, I think it warrants a better answer than RTFM on the Connectors.

And the problem may not just be isolated to JSP handling. Judging from other reports that are turning up in Google's index pertaining to SetCharacterEncodingFilter, it's affecting the filter implemetation as well.


          

Mystery External Login Module errors AEM6.5

 Cache   

We have AEM website hosted by Adobe MS that is being upgraded from AEM6.3 to AEM6.5 ("upgrade in place").

 

Every since the upgrade mystery configurations (four of each) for:

/apps/system/config/org.apache.jackrabbit.oak.spi.security.authentication.external.impl#utm_source=googlier.com/page/2019_10_08/140524&utm_campaign=link&utm_term=googlier&utm_content=googlier.com.Ex ternalLoginModuleFactory.*

/apps/system/config/org.apache.jackrabbit.oak.spi.security.authentication.external.impl#utm_source=googlier.com/page/2019_10_08/140524&utm_campaign=link&utm_term=googlier&utm_content=googlier.com.De faultSyncHandler.*

 

This in turn creates OSGI configs.

 

When we restart an instance we get spammed with errors

*ERROR* [Apache Sling Resource Provider Change Notifier] org.apache.jackrabbit.oak.spi.security.authentication.external.impl#utm_source=googlier.com/page/2019_10_08/140524&utm_campaign=link&utm_term=googlier&utm_content=googlier.com.ExternalLoginModule No IDP found with name  xxxxxx

 

The thing is, our application does not or has ever used LDAP and our pre-upgrade AEM instances do not have any ExternalLoginModuleFactory or DefaultSyncHandler. So it is something that has been introduced in AEM6.5 or in the upgrade process.

 

I've gone in an manually deleted all references to these configs but next restart they just come back.

 

Anyone have any idea where these configs are being created and how to get rid of them?


          

Set file data store to NAS location 6.5

 Cache   

I'm setting up a 6.5 author locally to work out issue before I install on our linux server. I need to configure AEM to use a shared mounted drive for the location of its file data store. The data store will be shared with an offloader I'll be setting up next.

 

I've gone over this page Configuring node stores and data stores in AEM 6  and tried everything I can. When I set a different location the server either fails to start or it fails to use the new location. I start AEM using sudo to make sure it have permissions to do what ever it needs.

 

I've put these two files in the crx-quickstart/install dir with these settings commenting out various values for testing.

 

org.apache.jackrabbit.oak.plugins.blob.data#utm_source=googlier.com/page/2019_10_08/140531&utm_campaign=link&utm_term=googlier&utm_content=googlier.comstore.FileDataStore.conf#utm_source=googlier.com/page/2019_10_08/140531&utm_campaign=link&utm_term=googlier&utm_content=googlier.comig

#repository.home#utm_source=googlier.com/page/2019_10_08/140531&utm_campaign=link&utm_term=googlier&utm_content=googlier.com="crx-quickstart/repository/datastore"

path="/path/⁨user/Sites⁩/⁨AEM-Runtime⁩/⁨6.5⁩/datastore"

#minRecordLength="256"

 

org.apache.jackrabbit.oak.segm#utm_source=googlier.com/page/2019_10_08/140531&utm_campaign=link&utm_term=googlier&utm_content=googlier.coment.SegmentNodeStoreService.conf#utm_source=googlier.com/page/2019_10_08/140531&utm_campaign=link&utm_term=googlier&utm_content=googlier.comig

#repository.home#utm_source=googlier.com/page/2019_10_08/140531&utm_campaign=link&utm_term=googlier&utm_content=googlier.com="crx-quickstart/repository"

#tarmk.size#utm_source=googlier.com/page/2019_10_08/140531&utm_campaign=link&utm_term=googlier&utm_content=googlier.com=I"256"

customBlobStore=B"true"

 

Any help figuring this our is appreciated.


          

Thread: Once We Moved Like the Wind: The Apache Wars, 1861-1886:: General:: Length of Game?

 Cache   

by Greg Wilmoth

Getting ready to play this for the first time, and I want to tell my gaming buddy how long it's likely to take. How long does a typical game of OWMLTW take?

Thanks in advance.
          

Xstore POS

 Cache   
WA-Seattle, Xstore POS We have an Xstore POS. The position is Permanent opportunity. Selected candidates must be willing to join at a short notice. Qualified candidates should be willing to work at Seattle, WA Number of Positions: 1 The ideal candidates will possess the following: Must Have Skills: Xstore POS Desired Skills: OpChain & DTX framework Java/J2EE, SOAP & Rest API, SFTP, XML, WebLogic, Apache, Orac
          

Middleware Administrator

 Cache   
MA-Quincy, job summary: •Support the design and development of J2EE systems that host WebLogic and monitoring infrastructure •Monitor health, and provide problem resolution that includes the diagnosis and root cause analysis of application and server issues with the various tools like Wily/OEM and Tivoli. •Perform Installation, Upgrade, configure and maintain Apache, OHS, Weblogic and MQ servers. •Support st


Next Page: 10000

© Googlier LLC, 2019