пʼятниця, 24 липня 2026 р.

Charades

 A few years ago I've created a mobile game Charades, so you can play a word game with your friends and family. The goal of the game is to guess words on mobile screen. One person that holds the mobile device do not see the screen because the person hold the device on her head. 

Other people who see the word try to mime it by performing certain actions or try to explain the word without mentioning the word itself. 

If, for example, you mime an "Apple" word you can try to perform an imaginary easting and chewing an apple action. If you explain the word you can say something like this. What forbidden fruit Eve has eaten in the garden(propably it is not an apple, but you get the idea).

I've added a lot of different words to the game that are divided by different topics, like "Food", "Animals", etc. I also added a subscription for better decks. 

I hope you will try this word guessing game.

The link to the word guessing game "Charades" on Google Play: Charades - Apps on Google Play

The link to the word guessing game "Charades: Guess the Word Game": ‎Charades: Guess the Word Game App - App Store

вівторок, 18 листопада 2014 р.

четвер, 3 липня 2014 р.

Огляд сервісу онлайн-тестування «Quizful.net»


    Сервіс Quizful.net призначений для онлайн-тестування спеціалістів в сфері інформаційних технологій. З його допомогою тисячі програмістів, тестерів, адміністраторів і менеджерів перевіряють свої знання і отримують багато корисної інформації.
    
Використовуючи Quizful.net Ви зможете:
  • підготуватись до співбесіди;
  • перевірити свої знання з обраної теми;
  • пройти перевірку кваліфікації;
  • пройти онлайн-тести на відкриті позиції деяких ІТ-компаній;
  • знайти цікаву інформацію, користуючись унікальною бібліотекою статтей.

 

 Підготовка до співбесіди

 

    Меню "Вопросы собеседований" розбите на теми і містить список питань, які часто задають на співбесідах.
 

 

Перевірка знань

 

    Сервіс надає можливість перевірити свої знання шляхом проходження тестів, а також легко контролювати Ваш прогрес, адже кожна успішне проходження тесту фіксується і записується у ваш профіль.
 

 

Підтвердження кваліфікації

 

    Якщо Ви не впевнені чи представляєте якусь цінність на ринку праці і хочете довести собі, що Ви все-таки чогось варті, то у Вас є унікальна можливість це зробити використовуючи сервіс Quizful.net.

    Підтвердження кваліфікації відбувається у декілька етапів:
  1. Проходження певного набору тестів;
  2. Написання статті на тему, яка пов'язана з даною кваліфікацією;
  3. Створення набору питань для поповнення існуючих тестів.

   

Тести по відкритим вакансіям компаній

 

    Хочете підвищити свої шанси потрапити на роботу в певну компанію? Проходьте онлайн-тести по відкритим вакансіям прямо на сайті Quizful.net. На момент написання даної статті сервіс Quizful.net надавав тести по вакансіям компанії Cogniance.
 
 

Статті

 

    Учасники проекту вже написали десятки авторських статтей, які стануть у пригоді як новачкам, так і професіоналам.
 

Висновок

 

    На мою думку, ІТ-спеціалістам будь-якого рівня варто стати користувачами даного сервісу, адже це гарний помічник в отриманні та перевірці знаннь, вмінь і навичок, необхідних в сфері інформаційних технологій.

пʼятниця, 25 квітня 2014 р.

Java без анотацій

Анотація - це конструкція, яка надає метаінформацію про елементи програми процесору анотацій, тобто інформацію, яка сама собою не є частиною алгоритму програми і напряму ніяк не впливає на неї.
// TODO: призначення (Many APIs require a fair amount of boilerplate code).
Процесор анотацій - це утиліта, яка шукає анотації в програмі і, опираючись на інформацію, яку вони несуть, виконує певні дії.

Хоча, анотації не є частиною алгоритму програми, проте з їх допомогою можна впливати на процес компіляції та виконання коду.

Наприклад, в мові Java є анотація @Override.  
Ось декомпільований вихідний код, який її описує:

package java.lang;

import java.lang.annotation.Annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ java.lang.annotation.ElementType.METHOD })
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

Анотація @Deprecated.

package java.lang;

import java.lang.annotation.*;
import static java.lang.annotation.ElementType.*;
 
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
} 

Анотація @SuppressWarnings

package java.lang;

import java.lang.annotation.*;
import static java.lang.annotation.ElementType.*;

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
      String[] value();
}


Анотація  @SafeVarargs

package java.lang;

import java.lang.annotation.*;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})
public @interface SafeVarargs {}


Анотація @Retention

package java.lang.annotation;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
    RetentionPolicy value();
}


Анотація @Documented

package java.lang.annotation;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Documented {
}


Анотація @Target

package java.lang.annotation;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
    ElementType[] value();
}


Анотація @Inherited

package java.lang.annotation;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Inherited {
}


Процесор анотацій, може досліджувати код на 3 різних етапах життя програми:
  1. коли існує лише вихідний код;
  2. коли код скомпільований;
  3. кори програма вже виконується.
Для цього придумали політику зберігання анотацій. Якщо Ви знаєте, що анотіції будуть оброблятись процесором на етапі виконання програми, то Вам потрібно вказати це при створенні типу анотації. Для цього інсуює так звані метаанотіція @RetentionPolicy.
Наприклад,

@RetentionPolicy.RUNTIME
public @interface BottleNeck {
}

@RetentionPolicy.RUNTIME - метаанотація, яка вказує на те, що анотація @BottleNeck буде зберігатися протягом всіх етапів виконання програми.


@RetentionPolicy.CLASS - метаанотація, яка вказує на те, що анотація @BottleNeck буде зберігатися до етапу компіляції програми включно, тобто, в скомпільованих файлах анотації будуть присутні і процесор анотацій зможе їх використати.

@RetentionPolicy.SOURCE - метаанотація, яка вказує на те, що анотація @BottleNeck буде зберігатися лише у вихідному коді, тому процесор анотацій зможе обробляти лише вихідний код. Доступу до анотацій у скомпільованому коді чи в процесі виконання програми він не буде мати.


Джерела інформації:
  • http://en.wikipedia.org/wiki/Annotation
  • http://stackoverflow.com/questions/2793085/what-is-your-alternative-to-annotations
  • http://www.oracle.com/technetwork/articles/hunter-meta-096020.html
  • https://jcp.org/en/jsr/detail?id=175
  • https://jcp.org/en/jsr/platform
  • http://www.java2s.com/Tutorial/Java/0020__Language/Demonstratesthetransientkeyword.htm
  • http://www.cs.indiana.edu/classes/jett/sstamm/
  • http://www.oracle.com/technetwork/articles/hunter-meta-2-098036.html
  • http://www.oracle.com/technetwork/articles/hunter-meta-096020.html
  • http://tutorials.jenkov.com/java/annotations.html
  • http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jst.j2ee.doc.user%2Ftopics%2Ftdefiningannotations.html
  • http://docs.oracle.com/javase/7/docs/technotes/guides/language/annotations.html
  • http://www.somanyword.com/2014/02/how-to-create-and-implement-custom-annotations-in-java/
  • http://docs.oracle.com/javase/tutorial/java/annotations/predefined.html
  • http://deors.wordpress.com/2011/10/08/annotation-processors/
  • http://commons.apache.org/proper/commons-beanutils/
  • http://en.wikipedia.org/wiki/Convention_over_configuration
  • http://xdoclet.sourceforge.net/xdoclet/index.html
  • https://www.jcp.org/en/jsr/detail?id=269
  • http://stackoverflow.com/questions/8029279/well-known-jsr-269-pluggable-annotation-processing-api-users-besides-jpa-2-0
  • http://ilikeorangutans.github.io/2013/08/13/jsr-269-annotation-processing/
  • http://scg.unibe.ch/archive/projects/Erni08b.pdf
  • http://docs.oracle.com/javase/7/docs/technotes/guides/apt/
  • http://docs.oracle.com/javase/7/docs/technotes/tools/index.html#basic
  • http://tutortutor.ca/cgi-bin/makepage.cgi?/articles/byoap
  • http://www.angelikalanger.com/Conferences/Slides/JavaAnnotationProcessing-JSpring-2008.pdf
  • http://yourmitra.wordpress.com/2008/02/15/java-custom-annotations-runtime-and-compile-build-time-processing/
  • http://www.informit.com/articles/article.aspx?p=2027052&seqNum=6