Näytetään tekstit, joissa on tunniste Xcode. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste Xcode. Näytä kaikki tekstit

08 elokuuta, 2020

Serving favicon.ico with node.js easily without express

Sad but true

There are literally hundreds of tips in various places of Internet helping us to get rid of those annoying error messages, where browser is (without success) trying to load favicon.ico -file from node.js-server.  I was looking for some neat code snippet how to do it, but all I found is axamples of how to just block those requests so, that error messages stop, or there was solutions too, but they all were using express, wich imho is way too heavy solution, for minimalist approach. So I continued studying and in one hour I have developed my own solution, which I now proudly present.

Solution

Here is minimal index.js -node server file: 

var http = require("http"),

url = require("url"),

fs = require("fs"),

hostname = "localhost",

port = '8000',

faviconPath = '/img/favicon.ico';


fs.readFile('./index.html', function (err, html) {

    if (err) {

        throw err; 

    }       

    http.createServer(function(request, response) {

     var pathname = url.parse(request.url).pathname;

     if (pathname === '/favicon.ico') {

        var fileStream = fs.createReadStream(__dirname + faviconPath);

        console.log('sending favicon...')

        return fileStream.pipe(response); // send that icon...

     }

        response.writeHeader(200, {"Content-Type": "text/html"});  

        response.write(html);  

        response.end();  

    }).listen(port);

     console.log('Open page in chrome for you... :');

       var childProc = require('child_process');

       childProc.exec('open -a "Google Chrome" http://'+hostname+':'+port+'/');

});


Minimum ready made HTML file 

Make /img -folder inside your project folder and put your favourite favicon.ico -icon in there. Then put this index.html file in same folder with server -file index.js:


<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title>Simplest app</title>

    <style>

    body { margin: 0; }

    </style>

</head>

<body>

    <div>

<h1>Welcome</H1>

    See the small favourite icon up there?

</div>

</body>

</html>


Testing

Now you take your terminal app and go to that project folder...


> cd myNodeServerProject


Then you start your server:


> node index


Up and running

Node will start with index.js file and immediately Chrome will fetch your index.html -page from local node-server and if you look at upper area of the page, there is somewhere this very small icon just where it should be. Thou shall never ever see that annoying error message again, AND you have actually learned how to solve the problem, not just put the symptoms under the carpet...


 - You are welcome.


 



27 syyskuuta, 2009

CoreSWF luokkakirjastot ja Xcode




Kuinka lisäät jaetut ActionScript 3 -luokat Xcode -ympäristössä.

Jaettu luokkakirjasto on siis se paikka, mihin voit kerätä yleistä hyödyllistä koodia, niin ettei sitä tarvitse kopioida jokaiseen projektiin erikseen.

Core SWF paketissa, josta luot projektisi on xml tiedosto nimeltään build.xml.

Avaa se ja lisää sinne tällainen rivi:
 <property name="CLASSES_HOME" location="/Users/OMA_TUNNUS/Documents/Xcode/luokat"/>

Parametrin location= pitää tietysti osoittaa sinne, missä sinun oma luokkakirjastosi oikeasti on, joten muista vaihtaa OMA_TUNNUS.
Itselläni luokkakirjasto sijaitsee Dokumentit / Xcode kansiossa ja on tavallinen kansio nimeltä luokat,
Sen sisällä on sitten nippu kansioita jotka ovat kaikkien projektien kesken jaettavissa, esim: caurina, asunit, fi, com, org jne…

build.xml alkupää on nyt siis tämän näköinen:

version="1.0" encoding="UTF-8"?>
<project name="«PROJECTNAMEASIDENTIFIER»" default="build" basedir=".">
<property name="FLEX_HOME" location="/Developer/SDKs/flex4.sdk"/>
<property name="src" location="src"/>
<property name="lib" location="lib"/>
<property name="dist" location="dist"/>
  <property name="CLASSES_HOME" location="/Users/OMA_TUNNUS/Documents/Xcode/luokat"/>


<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" />


Nyt voit luoda Xcode:ssa uuden projektin ja tästä lähtien jokaisessa uudessa projektissasi
voit viitata suoraan haluamaasi jaettuun kirjastoon.

esim näin:

package src {
import caurina.*; // tuo animaatiokirjaston projektiin
import.com.dejavu.omat.*; // omat koodit jotka jaetaan useisiin projekteihin



30 maaliskuuta, 2009

ActionScript 3 perusteet

Ensiaskel ohjelmointiin ActionScript 3 kielellä

Ongelmana ohjelmoinnin aloittamisessa voi olla saada toimiva ohjelmointiympäristö pystyyn. Myöskään yksinkertaisia kohta kohdalta ohjeita suomeksi ei tahdo löytyä. Saati sitten kun mennään ohjelmoinnissa pidemmälle.
Jotta voisi kokeilla toimiiko kyseinen ympäristö tarvitaan jokin ohjelma, jolla sen toimivuuden voisi kokeilla. Sitä varten usein tehdään ensin ns. HelloWorld ohjelma, jolla ympäristön toimivuus todetaan.
Siis varmasti toimiva yksinkertainen minimiohjelma, jolla näkee että kyllä se toimii. Tee tekstitiedosto nimeltä Hello.as ja siihen seuraava koodi.
package {
   import flash.display.Sprite;
   import flash.text.TextField;
    public class Hello extends Sprite {
public function Hello() {
  var helloDisplay:TextField = new TextField();
  helloText.text = "Hello World";
 addChild(helloText);

    }


Tämän kääntäminen valitulla ohjelmointiympäristöllä on se varsinainen ongelma, jonka aloittelija kohtaa. En siis syvenny koodiin ja syntaksiin tässä, sen aika on sitten, kun ohjelmointiympäristö pyörii. 
Yksinkertaisia ohjeita pystytykseen on vaikea antaa, koska ympäristöjä on useita erilaisia ja ohjeet hiukan erilaisia kunkin kohdalla. 
Mikäli rahaa on, voi suositella kaupallisia tuotteita, mutta ellei ole, on tyydyttävä seuraavaksi parhaaseen ja myös sen opastuksen tasoon.
Jos käyttää PC -koneita kuten useimmat, FlashDevelop on suositukseni.
Flash
Adoben kaupallinen, mainitsen ensin, koska tästä kaikki on alkanut.
FlashDevelop
Suomalaisten kehittämä ja ilmainen, vain PC -koneisiin. 
Xcode
Applen ohjelmointiympäristö, vaatii viritystä. Itse käytän tätä.
Eclipse
Vaatii viritystä. En tunne kovin hyvin vielä, ilmainen versio on olemassa.
Flex
Adoben kaupallinen versio, toimii lähes paketista.

Kullakin on ohjeita asentamiseen. Palataan niihin myöhemmissä posteissa.
Puran hello -koodin selventävillä kommenteilla myöhemmin.